home *** CD-ROM | disk | FTP | other *** search
/ Zoom 2 / Zoom - Release 2 (1996)(Active Software)[!].iso / graphics / raytracing / texturestudio / doctxt.lha / TextureStudio.txt next >
Text File  |  1995-05-07  |  115KB  |  4,060 lines

  1. TextureStudio, shareware texture renderer for the Amiga.
  2.  
  3.    Copyright (C) 1995 Andy Dean, Graham Dean.
  4.  
  5.    Welcome to TextureStudio, shareware texture renderer for the Amiga.
  6.  
  7.    This document applies to version 1.0.x, written on 10th May 1995,
  8. Copyright (C) 1995 Graham Dean, Andy Dean.
  9.  
  10. Introduction
  11. ************
  12.  
  13.    This chapter gives a brief introduction into the features offered by
  14. the program.
  15.  
  16. Copyright and Disclaimer
  17. ========================
  18.  
  19.    No guarantee of any kind is given that the programs described in
  20. this document are 100% reliable. You are using this material at your
  21. own risk. The authors *can not* be made responsible for any damage
  22. which is caused by using these programs.
  23.  
  24.    The unregistered package is freeware, but still copyright by Graham
  25. Dean and Andy Dean. This means that you can copy it freely as long as
  26. you don't ask for a more than nominal copying fee.
  27.  
  28.    The registered version of the program and its associated keyfile
  29. *may not* be freely distributed.
  30.  
  31.    Permission is granted to include the unregistered package in
  32. Public-Domain collections, especially in the excellent Fred Fish Amiga
  33. Disk Library (including CD ROM versions of it). The distribution file
  34. may be uploaded to Bulletin Board Systems or FTP servers. If you want
  35. to distribute this program you must use the original unmodified
  36. distribution archive.
  37.  
  38.    This program (or parts of it) may not be included or used in
  39. commercial programs unless by written permission from the authors.
  40.  
  41.    The textures Blades.itx, Radar.itx, Target.itx and
  42. WarningStripes.itx are freely distributable and may be used in any
  43. pictures, renders or programs without permission from the authors.
  44.  
  45.    Installer and Installer project icon (c) Copyright 1991-93
  46. Commodore-Amiga, Inc.  All Rights Reserved. Reproduced and distributed
  47. under license from Commodore.
  48.  
  49.    INSTALLER SOFTWARE IS PROVIDED "AS-IS" AND SUBJECT TO CHANGE; NO
  50. WARRANTIES ARE MADE.  ALL USE IS AT YOUR OWN RISK. NO LIABILITY OR
  51. RESPONSIBILITY IS ASSUMED.
  52.  
  53.    Imagine and its texture format is (c) Copyright 1994 Impulse Inc.
  54. Mpls, MN 55444.
  55.  
  56. Machine requirements
  57. ====================
  58.  
  59.    TextureStudio requires the following system to run:
  60.  
  61.    * Workbench 2.04 or above.
  62.  
  63.    * A machine equipped with a 68020 or greater and an FPU (floating
  64.      point unit)
  65.  
  66.    * Around half a megabyte of free memory.
  67.  
  68. Brief description
  69. =================
  70.  
  71.    TextureStudio supports the loading of texture modules in Imagine3
  72. format. The parameters of the texture can quickly and easily be
  73. adjusted by means of slider gadgets or by typing in the numbers. The
  74. texture can then be mapped onto a plane, cylinder or sphere and
  75. rendered to a preview screen and/or as a 24-bit image to disk.
  76.  
  77.    Many aspects of the texture and render can be altered including axis
  78. position/alignment/size, lighting settings, object colours, object size
  79. etc.
  80.  
  81.    TextureStudio allows the user to quickly render the texture and
  82. explore the effects of changing various parameters without the need to
  83. ray-trace a new image each time something altered.
  84.  
  85.    TextureStudio can render images to disk in ILBM-IFF24, JPEG or Targa
  86. format. This allows high quality images to be rendered and loaded into
  87. other programs. 24-bit images of any size can be rendered, regardless
  88. of memory available.
  89.  
  90.    Some example textures are included in the distribution but Imagine3
  91. is required to be able to use it's textures.
  92.  
  93. List of features
  94. ================
  95.  
  96.    * Supports Imagine3 texture format.
  97.  
  98.    * Control of features via ARexx port.
  99.  
  100.    * Render unlimited number of textures simultaneously.
  101.  
  102.    * Render to HAM screen and 24-bit images on all Amigas.
  103.  
  104.    * Render 24-bit images of any size onto disk in IFF-ILBM24, JPEG or
  105.      Targa format, regardless of memory available.
  106.  
  107.    * Saving of HAM preview screen to disk.
  108.  
  109.    * Support for colour, filter and bump type textures.
  110.  
  111.    * Easy adjustment of parameters by means of slider gadgets.
  112.  
  113.    * Map textures onto a plane, cylinder or sphere.
  114.  
  115.    * Control of light colour, distance, position, backlighting and
  116.      intensity.
  117.  
  118.    * Adjustment of axis alignment, size and position.
  119.  
  120.    * Control of object size, visible width and image aspect ratio.
  121.  
  122.    * Multiple pass render to allow quick preview of image whilst it
  123.      renders.
  124.  
  125.    * 5 levels of anti-aliasing available.
  126.  
  127.    * Preview colours with colourbox window.
  128.  
  129.    * Alter render screens width, height and screenmode.
  130.  
  131.    * Control of all main functions from floating windows.
  132.  
  133.    * Optimised code for 68881 and 68882 FPU's for maximum speed.
  134.  
  135.    * Render plane, cylinder or sphere without any texture to quickly
  136.      set up lighting etc.
  137.  
  138.    * Loading and saving of textures settings, parameters and axis
  139.      positions.
  140.  
  141.    * Render preferences to alters speed and accuracy of render.
  142.  
  143.    * Configure window positions, screenmode, default settings and then
  144.      save preferences to disk.
  145.  
  146.    * Runs on all Amigas with Workbench2.04 or above and an FPU
  147.      (floating point unit).
  148.  
  149.    * Standard Workbench2 interface.
  150.  
  151.    * Uses public screen.
  152.  
  153. Shareware version
  154. =================
  155.  
  156.    The shareware version is limited in that only the first 8 parameters
  157. of the texture can be adjusted. No other features have been removed.
  158.  
  159.    The full version allows all 16 parameters to be altered.
  160.  
  161.    For details on how to register, see How to register.
  162.  
  163. Starting TextureStudio
  164. ======================
  165.  
  166.    TextureStudio can be started from either the Workbench or CLI. From
  167. the Workbench it is simply a case of double-clicking on the icon.
  168.  
  169.    To start TextureStudio from the CLI, simply type:
  170.  
  171.      run TextureStudio
  172.  
  173.    The tooltypes can also be typed in on the CLI. For example
  174.  
  175.      run TextureStudio "PUBSCREEN=TS" "PREFSFILE=Prefs/SmallScreen.prefs"
  176.  
  177.    would start the program on a public screen named `TS' and the
  178. preferences would be taken from the file `Prefs/SmallScreen.prefs'. See
  179. Tooltypes, for a list of available tooltypes.
  180.  
  181. Quick start
  182. ***********
  183.  
  184.    This tutorial is designed to quick introduction to some of
  185. TextureStudio's features. The Imagine3 textures are required later in
  186. the tutorial.
  187.  
  188.    Firstly, we shall demonstrate TextureStudio's ability to render a
  189. texture onto a plane.
  190.  
  191.    Load TextureStudio if you haven't already. Open the `Object' window
  192. by selecting `Show object' in the `Windows' menu. Select the `Object'
  193. to be a `Plane'. Make sure `Allow transparent object', `Calculate
  194. surface normals', `Full light calculations' and `Multiple pass render'
  195. are all set in the `Prefs' menu. Open the `Colours' window and select
  196. the `Object colour' to be light grey (150,150,150). You can see the
  197. actual colour being edited by opening the `Colour box' window from the
  198. `Windows' menu.
  199.  
  200.    Now we are ready to render the object, at the moment there are no
  201. textures open, but that's OK, we'll just render the plane with no
  202. textures mapped onto it. Click on `Render' in the `Infobar' window.  A
  203. grey plane should be rendered fairly quickly to a HAM view screen (HAM8
  204. on AGA machines, HAM6 otherwise). Click the right mouse button to bring
  205. TextureStudio to the front. The image should have been rendered in a
  206. series of passes, allowing you to see a general view of the image, more
  207. quickly than if it was rendered line by line sequentially, this is set
  208. by the `Multiple pass render' preference. You may have also noticed
  209. that the plane had some shading on it, this is due to the light source
  210. and many aspects of the lighting can be altered, we shall discuss this
  211. later in the tutorial.
  212.  
  213.    Any time you want to stop the render, just press the right mouse
  214. button.
  215.  
  216.    OK, so we have now seen how TextureStudio can render to a flat
  217. plane, but it's not very exciting without a texture mapped on to it.
  218. Open the `Texture' window, if it is not already open. Now select `Open
  219. texture...' from the `Project' menu, or `Open...' from the `Texture'
  220. window to load in a texture module. Select `Radar.itx' which is
  221. distributed with this package. Click on `OK' to load it in. Now you
  222. should see that `Radar' has appeared in the listview in the `Texture'
  223. window. This list shows the all the textures that are currently open,
  224. it is possible to load as many as you like with TextureStudio. You
  225. should also see that in the `Parameters' window, the parameters for the
  226. current texture are displayed, for the moment we shall use the default
  227. parameters.
  228.  
  229.    Now click on `Render' again, you should now see the image of the
  230. `Radar' texture being mapped onto a plane. We can adjust the settings
  231. of the texture using the parameters window. If you are running
  232. TextureStudio on a screen of heigth 256 pixels or more, you can display
  233. the full parameters window and so make sure the `Small parameters
  234. window' preference is turned off. If TextureStudio's screen height is
  235. less than 256 (ie screen size of 640 x 200) then you can only fit the
  236. small parameters window on the screen (the small parameters window
  237. doesn't have slider gadgets). The advantage of using the full
  238. parameters window is that the parameters can quickly be adjusted by the
  239. slider gadgets and there is no need to type in the numbers.
  240.  
  241.    Let's adjust some of the parameters for the `Radar' texture. Change
  242. the `Sweep angle' parameter to about 45 degrees. Now change the `Radar
  243. colour' to be bright red (255,0,0), again, if you have the colourbox
  244. window open, you will be able to see actual the colour being adjusted.
  245. Now click on `Render' again to see the changes made. This is one of
  246. TextureStudio's  most useful features, the ability to change one or
  247. more parameters, and then quickly re-render the texture to see the
  248. changes made. This makes the process of getting the texture parameters
  249. just right much easier than having to ray-trace the scene many times.
  250. You may have noticed that the new image was rendered over the old
  251. image, this can be turned off by the `Use fresh render screen'
  252. preference.
  253.  
  254.    Now let's try layering 2 textures together. Open the
  255. `WarningStripes' texture supplied with this package. It should now
  256. appear at the bottom of the list in the `Texture' window. Textures at
  257. the bottom of the list have the highest priority and so will appear on
  258. top of the textures in the render scene. The `WarningStripes' texture
  259. should also be selected in the list, you can change which texture you
  260. want to alter by clicking in the list to select the texture. Try
  261. clicking on the `Radar' texture in the list and then clicking back on
  262. the `WarningStripes' texture, notice how the parameters window changes
  263. depending on the currently selected texture.
  264.  
  265.    Now click on `Render' again. You should be able to see how the
  266. `WarningStripes' texture has been layered on top of the `Radar'
  267. texture. Move the `WarningStripes' texture up in the texture list by
  268. selecting the `WarningStripes' texture and then clicking on `Up' in the
  269. `Texture' window. The `Radar' texture should now be at the bottom of
  270. the list and so have the greatest priority. Click on `Render' to see
  271. the changes. The `WarningStripes' texture is now behind the `Radar'
  272. texture.
  273.  
  274.    TextureStudio can also map textures onto a cylinder or sphere, we
  275. shall now demostrate mapping the `GasGiant' texture (supplied with
  276. Imagine3) onto a sphere. Close the `WarningStripes' and `Radar'
  277. textures by selecting them and then clicking on `Close' in the
  278. `Texture' window. Now load in the `GasGiant' texture. Change the
  279. current object to a sphere by selecting the `Sphere' in the `Object'
  280. window. Click on `Render' again. You should see an image which looks
  281. something like a planet. Now let's try altering the textures axis. Open
  282. the `Axis' window. Make sure `View' is set to `Front' and `Edit' is set
  283. to `Alignment' in the `Axis' window. Let's rotate the axis so that the
  284. texture is on a slant. Change the Y-alignment to be about 30 degrees by
  285. typing in the number or using the slider gadget. Now render the scene
  286. again. You should be able to see how the textures alignment has changed.
  287.  
  288.    Now let's look at the lighting options. Open the `Light' window.
  289. Move the light poition to the bottom right, do this by either clicking
  290. on the bottom left of the box (on the left of the `Light' window) or by
  291. clicking on the `Position' cycle gadget. Now re-render the scene to see
  292. the changes made. Change the `Backlight' setting to be 0% and
  293. re-render. The backlight setting sets the ambient light, and so setting
  294. it to 0% puts areas away from the light source in complete shadow. Set
  295. the `Backlight' to 25% and re-render to see the difference. You should
  296. now have an image that looks like a fairly convincing planet.
  297.  
  298.    Let's save the render screen to disk, so we can view it later or
  299. load it in to other programs. Select `Save...' from the `Infobar'
  300. window, choose a filename (e.g. "GasGiantPlanet.ilbm") and click on OK.
  301. Now suppose we wanted to render this image again later, or just make a
  302. few changes, it would be a pain to have to load in the texture again
  303. and set up the object, axis and lighting as we have it now.
  304. TextureStudio allows you to save all the current texture settings to
  305. disk so you can easily load them back again another time. Select `Save
  306. texture settings...' from the `Texture' menu, choose a filename (e.g.
  307. "Planet.GasGiant") and click on OK. Anytime you want to re-render the
  308. scene just load the settings back in, but you will have to make sure
  309. that the `GasGiant.itx' texture file is in your current texture
  310. directory or else it won't be able to load the file, since
  311. TextureStudio does not save the full filename, just the texture name.
  312.  
  313.    Another one of TextureStudio's useful features is to be able to
  314. render a texture image as a 24-bit image file for use with other
  315. programs. Let's try and render a texture as an IFF-ILBM24 file. Close
  316. the `GasGiant' texture now. Open the `Agate' texture supplied with
  317. Imagine3. Set the current object to be a plane, turn the `Full light
  318. calculations' preference off, this removes any highlights due to the
  319. light source. Select `IFF-ILBM24' as the `Render file format' from the
  320. `Prefs' menu. Next, bring up the render options window by clicking on
  321. `Options...' in the `Infobar' window. Click on `Render to file' and
  322. choose a filename (e.g. "Ram:TestRender.ilbm"). Change the size of the
  323. render if you like, the default is 160 x 128 which is quarter of a low
  324. res PAL screen. You can use the screen mode requester to set the screen
  325. and size by clicking on `Choose...' level with the `Render to screen'
  326. gadget.
  327.  
  328.    Now click on `Render', it may take a while to render the image but
  329. you can abort it by pressing the right mouse button if you like. Notice
  330. that the `Multiple pass render' preference has no affect when rendering
  331. to a file. Once TextureStudio has finished, it will have created a
  332. 24-bit IFF file. This can then be loaded into other programs that
  333. support 24-bit image files (e.g. ImageStudio, see ImageStudio).
  334.  
  335.    Well that's the end of the tutorial, I hope it has given you an
  336. insight into TextureStudio's features. There are many other features
  337. that have not been covered in this tutorial but hopefully you will be
  338. able to pick them up fairly easily. Have fun!
  339.  
  340. Menu options
  341. ************
  342.  
  343.    Description of all menu items.
  344.  
  345. Project
  346. =======
  347.  
  348. Open texture
  349. ------------
  350.  
  351.    Keyboard shortcut - `Amiga - O'
  352.  
  353.    This is how the user loads in a texture module from disk.
  354.  
  355.    A file requester will appear prompting the user to select a texture
  356. file. If the file is not a valid Imagine3 texture file, an error will
  357. be displayed.
  358.  
  359.    When the texture module has been loaded, it will appear in the
  360. `Texture' window.
  361.  
  362.    Loading a texture resets the parameters and axis settings.
  363.  
  364. Close texture
  365. -------------
  366.  
  367.    Keyboard shortcut - `Amiga - C'
  368.  
  369.    This closes and removes the currently selected texture.
  370.  
  371.    If all the textures are closed, TextureStudio will render a plane,
  372. cylinder or sphere with no texture mapped onto it.
  373.  
  374. Render
  375. ------
  376.  
  377.    Keyboard shortcut - `Amiga - R'
  378.  
  379.    This renders the textures to a HAM screen and/or a 24-bit image file.
  380.  
  381.    If `Render to screen' is selected in the `Options' window, a HAM
  382. screen is opened a brought to the front. TextureStudio will then render
  383. the textures to the HAM viewer screen line by line. The render
  384. operation can be aborted by pressing `Esc' or the right mouse button.
  385.  
  386.    If `Render to file' is selected in the `Options' window, a file is
  387. opened and the image is rendered in 24-bits to the file. Since
  388. TextureStudio renders to image line by line, very little memory is
  389. required when only rendering to a file, regardless of the image size.
  390. Note: when rendering to a file, the `Multiple pass render' preference
  391. is ignored and the image is render from top to bottom in one pass.
  392.  
  393.    It is possible to render to the screen and file simultaneously.
  394.  
  395.    See Render options.
  396.  
  397. Screen mode
  398. -----------
  399.  
  400.    This opens a screen mode requester to allow the user to change the
  401. screen mode, width, height and number of colours of TextureStudio's
  402. main screen.
  403.  
  404.    The screen mode used on startup can be saved with the `Save prefs'
  405. menu item in the `Prefs menu', See Save prefs.
  406.  
  407. About
  408. -----
  409.  
  410.    Keyboard shortcut - `Amiga - ?'
  411.  
  412.    This opens the about window which displays the current version and
  413. registered user name.
  414.  
  415. Quit
  416. ----
  417.  
  418.    Keyboard shortcut - `Amiga - Q'
  419.  
  420.    This closes all currently open textures and quits TextureStudio.
  421.  
  422. Texture
  423. =======
  424.  
  425. Load texture settings
  426. ---------------------
  427.  
  428.    Keyboard shortcut - `Amiga - D'
  429.  
  430.    This loads in a TextureStudio settings format file.
  431.  
  432.    Loading in a settings file may alter currently loaded textures, axis
  433. settings, object settings, lighting settings, colours and view settings.
  434.  
  435.    Settings files may contain any number of textures (including zero),
  436. the textures are then attempted to be opened from the user's current
  437. texture directory.
  438.  
  439.    If there are currently some open textures, then a requester will
  440. appear asking the user whether they want to wipe the existing textures
  441. or layer the new textures on top of the existing ones.
  442.  
  443. Save texture settings
  444. ---------------------
  445.  
  446.    Keyboard shortcut - `Amiga - F'
  447.  
  448.    This saves out a TextureStudio settings file with information about
  449. the current settings of: all open textures, parameters, axis, object,
  450. lighting, colours and view settings.
  451.  
  452.    A settings file may contain information about any number of textures
  453. (including zero).
  454.  
  455.    Settings files are particularly useful for saving out all the
  456. current information needed to reproduce the exact same effect another
  457. time.
  458.  
  459.    Settings files are in ASCII text format.
  460.  
  461. Load axis positions
  462. -------------------
  463.  
  464.    Keyboard shortcut - `Amiga - G'
  465.  
  466.    Loads in a TextureStudio axis file.
  467.  
  468.    The axis file contains the settings of the axis alignment, size and
  469. position.
  470.  
  471. Save axis positions
  472. -------------------
  473.  
  474.    Keyboard shortcut - `Amiga - H'
  475.  
  476.    Saves out current textures axis alignment, size and position in
  477. ASCII text format.
  478.  
  479. Load parameters
  480. ---------------
  481.  
  482.    Keyboard shortcut - `Amiga - J'
  483.  
  484.    Loads in 16 parameters from a TextureStudio parameters file.
  485.  
  486.    Note: TextureStudio does not check to see whether the current
  487. texture is the same texture used to save out the parameters file.
  488.  
  489. Save parameters
  490. ---------------
  491.  
  492.    Keyboard shortcut - `Amiga - K'
  493.  
  494.    Saves out the 16 parameters of the currently selected texture.
  495.  
  496.    Note: Only the parameters of one texture are saved.
  497.  
  498. Windows
  499. =======
  500.  
  501. Show axis
  502. ---------
  503.  
  504.    Keyboard shortcut - `Amiga - 1'
  505.  
  506.    This opens or closes the axis window.
  507.  
  508.    See Axis window.
  509.  
  510. Show colourbox
  511. --------------
  512.  
  513.    Keyboard shortcut - `Amiga - 2'
  514.  
  515.    This opens or closes the colourbox window.
  516.  
  517.    See Colourbox window.
  518.  
  519. Show colours
  520. ------------
  521.  
  522.    Keyboard shortcut - `Amiga - 3'
  523.  
  524.    This opens or closes the colours window.
  525.  
  526.    See Colours window.
  527.  
  528. Show light
  529. ----------
  530.  
  531.    Keyboard shortcut - `Amiga - 4'
  532.  
  533.    This opens or closes the light window.
  534.  
  535.    See Light window.
  536.  
  537. Show object
  538. -----------
  539.  
  540.    Keyboard shortcut - `Amiga - 5'
  541.  
  542.    This opens or closes the object window.
  543.  
  544.    See Object window.
  545.  
  546. Show parameters
  547. ---------------
  548.  
  549.    Keyboard shortcut - `Amiga - 6'
  550.  
  551.    This opens or closes the parameters window.
  552.  
  553.    See Parameters window.
  554.  
  555. Show texture
  556. ------------
  557.  
  558.    Keyboard shortcut - `Amiga - 7'
  559.  
  560.    This opens or closes the texture window.
  561.  
  562.    See Texture window.
  563.  
  564. Show view
  565. ---------
  566.  
  567.    Keyboard shortcut - `Amiga - 8'
  568.  
  569.    This opens or closes the view window.
  570.  
  571.    See View window.
  572.  
  573. Prefs
  574. =====
  575.  
  576. Beep when finished
  577. ------------------
  578.  
  579.    If this is on, when TextureStudio has finished rendering to the
  580. screen, it will flash the screen and beep, to alert the user it has
  581. finished. Since this could potentially get very annoying, it can be
  582. turned off.
  583.  
  584. Flush textures on open
  585. ----------------------
  586.  
  587.    If this option is off, whenever a texture is opened from disk, it
  588. will be added to the bottom of the texture list and all existing
  589. textures will remain open.
  590.  
  591.    If this option is turned on, when opening a texture, all existing
  592. textures will be flushed out (closed).
  593.  
  594. Multiple pass render
  595. --------------------
  596.  
  597.    If this option is turned on, when rendering to the screen, the image
  598. will be built up in 3 passes. The first pass renders every 4th line,
  599. the second pass renders every 4th line and the third pass renders the
  600. remaining lines. The idea of this option is that a general picture of
  601. the texture can be seen much quicker than rendering line by line.
  602.  
  603.    If this option is turned off, the lines of the image will be
  604. rendered sequentially.
  605.  
  606. Small parameters window
  607. -----------------------
  608.  
  609.    If this option is turned on, the parameters window used will only
  610. contain one number gadget and text field for each parameter.
  611.  
  612.    If this option is turned off, the parameters window used will
  613. contain slider gadgets to allow quick and easy adjustment of the
  614. parameters. This window will not fit on a 200 height or less screen and
  615. so the small parameters window will have to be used.
  616.  
  617. Use fresh render screen
  618. -----------------------
  619.  
  620.    If this option is turned on, the image will be rendered to a blank
  621. screen each time.
  622.  
  623.    If this option is turned off, the image will be rendered on top of
  624. the existing image (if it exists) and so it is easy to see any changes
  625. made since the last render.
  626.  
  627. Allow transparent object
  628. ------------------------
  629.  
  630.    If this option is turned off, the filter aspect of the texture and
  631. object is ignored and so the object is totally opaque.
  632.  
  633.    If this options is turned on, objects can be transparent and filter
  634. through light.
  635.  
  636.    The option slightly increases render time.
  637.  
  638. Calculate surface normals
  639. -------------------------
  640.  
  641.    If this option is turned off, the object will appear totally flat
  642. and no shading due to the object shape, lighting or bump texture will
  643. show up. Turning this option off is only really suitable when rendering
  644. to a plane and using a non-bumpy texture.
  645.  
  646.    If this options is turned on, all object shape, lighting and bump
  647. textures affect the shading as expected.
  648.  
  649.    This option slightly increases render time.
  650.  
  651. Full light calculations
  652. -----------------------
  653.  
  654.    If this option is turned off, the object shading due to the light
  655. source is slightly reduced and the distance of the light source from
  656. the centre of the object is ignored.
  657.  
  658.    If this option is turned on, all the object shading from the light
  659. source is present.
  660.  
  661.    You may wish to turn this option off if you want to render a texture
  662. to a flat plane for use as a picture in another program, this will
  663. eliminate any shading on the image and give a true representation of
  664. the texture alone.
  665.  
  666.    See Light window.
  667.  
  668.    This option slightly increases render time.
  669.  
  670. Anti-aliasing
  671. -------------
  672.  
  673.    Anti-aliasing is a process where the colours in the rendered image
  674. are smoothed to reduce the `jagged' affect of the pixels. The higher
  675. the anti-aliasing setting, the less noticable the individual pixels are.
  676.  
  677.    Anti-aliasing greatly increases render time, the table below shows
  678. the times taken to render relative to an anti-aliasing of none.
  679.  
  680.  
  681.          *Anti-aliasing setting    Time taken to render*
  682.          None                     1
  683.          Low                      4
  684.          Medium                   9
  685.          High                     16
  686.          Very high                25
  687.  
  688.    For most situations, a setting of none is sufficient and
  689. anti-aliasing is only really recommended for the final render.
  690.  
  691.    For a demostration of anti-aliasing, render the Radar texture to a
  692. plane firstly with no anti-aliasing and then with anti-aliasing set to
  693. low. Notice the difference with areas of large contrast.
  694.  
  695. Render file format
  696. ------------------
  697.  
  698.    This option sets the file format of the image file when `Render to
  699. file' is selected in the `Render options' requester, See Render options.
  700.  
  701.    If IFF-ILBM24 is selected, the image file is saved in 24 bits as a
  702. standard Amiga compressed IFF-ILBM picture.
  703.  
  704.    If JPEG is selected, the image file is saved in 24 bits as a JPEG
  705. compessed file. JPEG uses `lossy' compression which offers excellent
  706. compression ratios (very small files) but there is some loss in
  707. quality. The quality of the image saved can be set with the `JPEG
  708. options' window, see JPEG options.
  709.  
  710.    If Targa is selected, the image is saved as an uncompressed 24-bit
  711. Targa (Truevision) file.
  712.  
  713. JPEG options
  714. ------------
  715.  
  716.    This window alters the settings when saving out in JPEG format.
  717.  
  718.    The `Quality' setting alters the level of compression used in the
  719. file, a high value (85 or more) will save out a good quality image but
  720. with a relatively large file size. A small quality setting (50 or less)
  721. will give a very small file but with significant loss in quality.
  722.  
  723.    Note: A quality setting of 25 or less may cause problems with some
  724. JPEG readers.
  725.  
  726. Save prefs
  727. ----------
  728.  
  729.    This option saves out the current settings and preferences to a
  730. prefs file on disk. The prefs filename is set by the `PREFSFILE'
  731. tooltype, see Tooltypes.
  732.  
  733.    TextureStudio saves out the following details in the prefs file:
  734.  
  735.    * Windows positions and whether they are opened or closed.
  736.  
  737.    * Current lighting settings.
  738.  
  739.    * Current object settings.
  740.  
  741.    * Current view settings.
  742.  
  743.    * Current render options.
  744.  
  745.    * Colours of background, light, object colour and object filter.
  746.  
  747.    * TextureStudio's current screen mode, width and height.
  748.  
  749.    * All items in the `Prefs' menu.
  750.  
  751.    * Current paths for textures, settings, axis, parameters, renders
  752.      and render screens.
  753.  
  754.    After saving the prefs, when loading TextureStudio again, all these
  755. details will be used as defaults.
  756.  
  757. Floating windows
  758. ****************
  759.  
  760.    Notes.
  761.  
  762.    All windows can be opened or closed by selecting the relevant items
  763. in the `Windows' menu, see Windows.
  764.  
  765.    The position and status of all the windows can be saved by selecting
  766. `Save prefs' in the `Prefs' menu.
  767.  
  768. Axis window
  769. ===========
  770.  
  771.    The axis window allows the user to alter the axis alignment, size
  772. and position for the currently selected texture.
  773.  
  774.    The window visually shows the current axis settings in the box on
  775. the left, the viewpoint of which is set by the `View' cycle gadget.
  776.  
  777.    The `View' cycle gadget alters direction from which the axis are
  778. viewed from. Viewing the axis from the front shows the x-axis
  779. horizontally, the z-axis vertically and the y-axis out of the screen,
  780. when the axis have not been rotated.
  781.  
  782.    The `Edit' cycle gadget adjusts the function of the slider gadgets
  783. below. When `Alignment' is selected, the slider gadgets adjust the
  784. rotation about the x,y and z axis. When `Size' is selected, the user
  785. can alter the length of the x,y and z axis and when `Position' is
  786. selected, the slider gadgets adjust the offset of the base of the axis
  787. from the central position.
  788.  
  789.    As the slider gadgets are moved, the axis are redrawn in real time
  790. to give a representation of  the changes made.
  791.  
  792.    The exact settings of the axis can be altered by typing the numbers
  793. into the number gadgets.
  794.  
  795.    Each texture may have its own axis settings.
  796.  
  797. Colourbox window
  798. ================
  799.  
  800.    The colourbox window contains a square in which the current colour
  801. the user is editing is displayed. The current colour can either be from
  802. the colour window or a parameter of the current texture. The colourbox
  803. window also shows the red, green and blue values for the colour.
  804.  
  805.    The colour is displayed by setting the palette of TextureStudio's
  806. current screen. If TextureStudio is being run on a 4-colour screen,
  807. then the usual blue highlight colour will be altered. To set this back
  808. to it's original colour, click on a parameter which does not affect a
  809. colour value.
  810.  
  811. Colours window
  812. ==============
  813.  
  814.    The colours window allows the user to alter the current object
  815. colour, object filter, background colour and light colour.
  816.  
  817.    The cycle gadget adjusts which colour is currently being edited.
  818.  
  819.    The three slider gadgets allow the red, green and blue components of
  820. the colour to be altered between 0 and 255.
  821.  
  822.    The background colour alters the colour seen `behind' a cylinder or
  823. sphere. If the current object is a plane, the background colour cannot
  824. be seen and has no affect unless the object has some transparency (see
  825. object filter below).
  826.  
  827.    The light colour affects the colour of the light source. Setting it
  828. to 255,255,255 (pure white) gives a natural representation of colours
  829. of the texture. The actual intensity of the light can be altered in the
  830. `light' window, see Light window.
  831.  
  832.    The object colour affects the base colour of the object. With some
  833. textures, the base colour can be seen through the texture pattern,
  834. other textures are totally opaque and so the object's base colour
  835. cannot be seen.
  836.  
  837.    The object filter adjusts the light the object filters through.
  838. Setting this to 0,0,0 gives a totally opaque object, setting it to
  839. 128,128,128 gives the appearance of slightly transparent object. Note
  840. that if the current object is a cylinder or sphere, the `other side' of
  841. the object cannot be seen through the front half as you would expect.
  842. This is something that may be fixed in the future, see Future additions.
  843.  
  844. Infobar window
  845. ==============
  846.  
  847.    The infobar consists of a row of buttons to control aspects of the
  848. render screen, some text to display the size of the render screen
  849. currently open, a `fuel gauge' to indicate the progress of a task and
  850. an abort button to stop a task mid-way through.
  851.  
  852.    The `Render' button starts rendering the texture(s) to the HAM
  853. screen, see Render.
  854.  
  855.    The `View' button views the HAM render screen, if it is already
  856. open. Pressing the right mouse button sends the sceen to the back again.
  857.  
  858.    The `Save' button saves the current HAM render screen to disk as a
  859. HAM IFF-ILBM picture file. When clicking on the button, a file
  860. requester will appear requesting the user to select a file to save to.
  861.  
  862.    The `Close' button closes the current render screen, if it is open.
  863.  
  864.    The `Options' button brings up the render options window, see Render
  865. options.
  866.  
  867. Light window
  868. ============
  869.  
  870.    The light window adjusts the aspects of the light source used to
  871. illuminated the scene.
  872.  
  873.    The box to the left of the window shows the light source
  874. (represented by a circle) relative to the centre of the object
  875. (represented by a cross). The bounds of the box represent the bounds of
  876. the image as viewed from the front. For example if the light source if
  877. placed in the top left of the box, the scene will be lit from a light
  878. source in the top left corner of the image.
  879.  
  880.    The position of the light can be altered by clicking in the box to
  881. the left of the window or by clicking on the `Position' cycle gadget.
  882.  
  883.    The `Position' cycle gadget has nine preset positions for the light
  884. source to be in.
  885.  
  886.    The `Intensity' slider gadget alters to intensity of the light in
  887. percentage of the lights colour, See Colours window. Setting this to be
  888. 100% gives the actual light colour. A setting of 50% would give a light
  889. source half as bright. A setting of 200% gives an `over bright' light
  890. source and will cause large highlights on the object, this gives the
  891. effect of a very bright spotlight.
  892.  
  893.    The `Backlight' slider adjusts the backlighting or ambient light. A
  894. setting of 0% gives an object lit from one light source with total
  895. darkness in areas facing away from the light source. A setting of 50%
  896. gives the impression of some ambient light in all directions around the
  897. object, this will eliminate very dark shadows in areas that are not lit
  898. by the main light source.
  899.  
  900.    The `Distance' gadget alters the distance of the light source from
  901. the centre of the object in the y-axis (depth). This setting is ignored
  902. if the preference `Full light calculations' is off. For example if you
  903. are rendering to a plane and the distance is set at around 20, there
  904. will be a very defined highlight on the plane since the light is very
  905. close to the object. If the light is moved to a distance of 200 or
  906. more, the highlight will be barely visible.
  907.  
  908.    The `Full light calculations' checkbox gadget alters the accuracy at
  909. which the lighting is calculated. If the gadget is checked, the
  910. lighting is calculated as expected and the light distance affects the
  911. image. If the gadget is unchecked, the light distance is ignored and
  912. the affect on the image is similar to having the light source a very
  913. long distance away. This option was added to improve the speed of
  914. rendering, since if the gadget is unchecked, the render speed is
  915. slightly increased. See Full light calculations.
  916.  
  917. Object window
  918. =============
  919.  
  920.    The `Object' cycle gadget alters which type of geometrical shape the
  921. texture is mapped onto. If `Plane' is selected, the texture is mapped
  922. onto an infinitely big plane in the x and z directions, it is flat in
  923. the y direction (depth). If `Cylinder' is selected, the texture is
  924. mapped onto a vertical cylinder with circular cross section in the x
  925. and y directions. If `Sphere' is selected, the texture is mapped onto a
  926. sphere, with the radius being set with the gadget below.
  927.  
  928.    The `Radius' gadget sets the radius of the object if `Cylinder' or
  929. `Sphere' is selected. If `Plane' is selected, the radius is ignored.
  930.  
  931. Parameters window
  932. =================
  933.  
  934.    The parameters window allows the user to adjust the 16 number
  935. parameters associated with the currently selected texture.
  936.  
  937.    There are 2 parameter windows available, the small parameters window
  938. only allows the user to type the numbers directly in, it is designed
  939. for a small screen. The larger parameters window has slider gadgets to
  940. allow easier adjustment of the numbers, it is designed for a bigger
  941. screen (interlaced). The type of parameters window can be toggled by
  942. the `Small parameters window' preference, see Small parameters window.
  943.  
  944.    The minimum and maximum values for the slider gadgets in the larger
  945. parameters window are, by default, -10 and 245 respectively. If the
  946. text for the parameter has limits in brackets, (e.g. "Slope adjust
  947. (-1..1)") then these are used for the limits.
  948.  
  949. Texture window
  950. ==============
  951.  
  952.    The texture window displays all the currently open textures. The
  953. textures are ordered so that the texture at the bottom of the list has
  954. highest priority and so is `on top' when being mapped onto the object
  955. (consistent with Imagine3's method).
  956.  
  957.    The `Open' button opens a texture module from disk and adds it to
  958. the list, see Open texture.
  959.  
  960.    The `Close' button closes the currently selected texture and removes
  961. it from the list, see Close texture.
  962.  
  963.    The `Up' button moves the currently selected texture up in the list
  964. and so gives it a lower priority.
  965.  
  966.    The `Down' button moves the currently selected texture down in the
  967. list and so gives it a higher priority.
  968.  
  969. View window
  970. ===========
  971.  
  972.    This window adjusts how much of the `world' can be seen and the
  973. aspect ratio.
  974.  
  975.    The `Visible width' gadget adjust the width of the `window' in which
  976. you see the `world' through. For example, if you are rendering a sphere
  977. of radius 50, and the visible width is set to 100, the left and right
  978. edges of the sphere will just touch the edges of the render screen. The
  979. positions of the top and bottom will depend on the aspect ratio.
  980.  
  981.    The `X/Y aspect' gadget sets the X:Y ratio for the rendered image.
  982. For example if you are rendering to a square screen (128 x 128), then
  983. the X/Y aspect ratio is 128/128 = 1. However, most common screen sizes
  984. are not square, for example a lores PAL screen is 320 x 256, therefore
  985. for a sphere to look spherical and not `stretched', the X/Y aspect
  986. ratio must be set to 320/256 = 1.25. For a NTSC screen mode, the aspect
  987. ratio will be 320/200 = 1.6.
  988.  
  989. Render options
  990. ==============
  991.  
  992.    The render options window allows the user to alter the render screen
  993. width and height, the render image file name and whether to render to
  994. the screen and/or a 24-bit image file.
  995.  
  996.    The `Render to file' checkbox alters whether TextureStudio writes to
  997. a 24-bit image file. If it is checked, the image will be saved out line
  998. by line to a file decided by the filename in the text gadget. Clicking
  999. on `Choose' will bring up a file requester to make choosing a file
  1000. easier. When this option is selected, the `Multiple pass render'
  1001. preference is ignored, see Multiple pass render.
  1002.  
  1003.    The `Render to screen' checkbox alters whether the current
  1004. texture(s) should be rendered to a HAM render screen. The corresponding
  1005. `Choose' button chooses the render screen mode.
  1006.  
  1007.    The `Width' and `Height' number gadgets alter the width and height
  1008. of the image to be rendered. Note: The image width and height can also
  1009. be set from the screen `Choose' requester.
  1010.  
  1011. ARexx
  1012. *****
  1013.  
  1014.    This chapter gives information about the program's interface to the
  1015. ARexx programming language.
  1016.  
  1017. Introduction to ARexx
  1018. =====================
  1019.  
  1020.    ARexx is the script language that is distributed with all Amigas
  1021. sporting Workbench 2.04 and above. It is used on the Amiga for two main
  1022. tasks:
  1023.  
  1024.   1. Providing an easy and consistent method of adding macro facilities
  1025.      to programs.
  1026.  
  1027.   2. To allow ARexx aware programs to communicate with each other.
  1028.  
  1029.    Most users are dissuaded from using ARexx with their programs
  1030. because of the learning curve involved in (i) learning ARexx and (ii)
  1031. using the functions provided with each program. With TextureStudio, we
  1032. have tried to simplify the process of creating an ARexx script by:
  1033.  
  1034.   1. Providing a ready-made script template which the user can just
  1035.      "fill in the blanks" to produce a fully working program.
  1036.  
  1037.   2. Providing many commands to perform commonly performed operations.
  1038.      This means the user needs to write less code in ARexx and doesn't
  1039.      need to rely on external utilities and libraries to perform the
  1040.      operations.
  1041.  
  1042.    Typical uses for ARexx in TextureStudio include:
  1043.  
  1044.    * Animation. A number of frames can be rendered, changing one or
  1045.      more parameters each frame. These frames can then be joined
  1046.      together to form an animation. See RadarAnim script.
  1047.  
  1048.    * Cataloguing. A number of textures can be rendered, one after
  1049.      another and the images saved to disk. This provides a quick
  1050.      reference as to what each texture looks like. See RenderTextures
  1051.      script.
  1052.  
  1053.    * Communication. ARexx can be used to link together 2 or more
  1054.      programs. For example, TextureStudio could render a texture and
  1055.      save the image out in 24 bits. An image processing program could
  1056.      then load in the image, reduce it to 32 colours with dithering and
  1057.      save this new image out as a standard IFF-ILBM file for general
  1058.      viewing.
  1059.  
  1060.    Several example files are given with TextureStudio (see Example
  1061. scripts), which can either be used directly or modified to perform the
  1062. desired operation.
  1063.  
  1064. Basic ARexx
  1065. ===========
  1066.  
  1067.    This section is meant as a beginners guide to using ARexx with
  1068. TextureStudio. We cannot hope to teach you the ARexx language, although
  1069. it is only neccessary to the know the very basics to start using ARexx
  1070. scripts with TextureStudio. It is assumed that the user is  familiar
  1071. with a text editor (for example MEmacs) for editing scripts.
  1072.  
  1073.    For further information on ARexx, we suggest reading Commodore's
  1074. ARexx user guide supplied with the A4000 or the Workbench2 and 3
  1075. upgrade packs. For A600 and A1200 users who don't get this manual, we
  1076. recommend the "ARexxGuide" AmigaGuide document by Robin Evans which is
  1077. a shareware document containing extensive information on the ARexx
  1078. language. The guide can be obtained from all good PD houses.
  1079.  
  1080.    The ARexx programming language is similar to many other programming
  1081. languages in its structure. Users who have BASIC, C, FORTRAN, Pascal,
  1082. Modula2 or Oberon experience will notice many similarites. It is not
  1083. similar to Assember language, Lisp or Prolog. An ARexx program is, in
  1084. its simplest form, a list of instructions for TextureStudio to perform.
  1085. Here is a simple ARexx program:
  1086.  
  1087.      /* A simple ARexx program */
  1088.      
  1089.      REQUEST_MESSAGE TEXT '"Hello world!"'
  1090.      
  1091.      exit
  1092.  
  1093.    This shows some important things about an ARexx program:
  1094.  
  1095.   1. All ARexx programs *must* start with a comment line. A comment
  1096.      line is a line which starts with the `/*' sequence of characters
  1097.      and ends with the `*/' characters. Anything between these
  1098.      characters is ignored by ARexx.
  1099.  
  1100.   2. For clarity, all of TextureStudio's commands are shown
  1101.      CAPITALISED, ARexx commands are kept in lower case.
  1102.      REQUEST_MESSAGE is therefore an TextureStudio command that should
  1103.      be performed.
  1104.  
  1105.   3. The REQUEST_MESSAGE has some `arguments' or `parameters' following
  1106.      it. These tell the REQUEST_MESSAGE command how to behave, in this
  1107.      case they tell the command to pop up greeting message.
  1108.  
  1109.   4. To stop an ARexx program, use the command `exit'.
  1110.  
  1111.    OK, lets enhance our program a little:
  1112.  
  1113.      /* A better simple ARexx program */
  1114.      
  1115.      REQUEST_MESSAGE TEXT '"What do you think of\n'||,
  1116.         'the show so far?"',
  1117.         BUTTONTEXT "Great|Mediocre|Rubbish"
  1118.      
  1119.      exit
  1120.  
  1121.    From this example we learn:
  1122.  
  1123.   1. To separate a long command line, place a comma `,' as the last
  1124.      character on the line. This tells ARexx to treat the next line as
  1125.      a continuation of the previous. Two line breaks are used in the
  1126.      above example.
  1127.  
  1128.   2. ARexx loves to evaluate things. If we want to stop ARexx
  1129.      evaluating variables, the variable should be enclosed in single
  1130.      quotes ` ' '.
  1131.  
  1132.    See ARexx problem 1, if little explanation is needed as to the many
  1133. double and single quotes used above. If we now tell you that the `\n'
  1134. characters are used represent a newline and the `||' characters glue
  1135. string together, we should see that:
  1136.  
  1137.      '"What do you think of\n'||'the show so far?"'
  1138.  
  1139.    would be evaluated to:
  1140.  
  1141.      "What do you think of*the show so far?"
  1142.  
  1143.    where `*' represents a newline. The lesson to be learnt here is that
  1144. whenever you use a string (with or without spaces) it is best to
  1145. enclose the whole thing in single quotes outside the double quotes to
  1146. keep the whole thing together.
  1147.  
  1148.    On with the examples. The previous script isn't much use if we can't
  1149. test for which button the user pressed, so:
  1150.  
  1151.      /* A better simple ARexx program */
  1152.      
  1153.      options results
  1154.      
  1155.      REQUEST_MESSAGE TEXT '"What do you think of\n'||,
  1156.         'the show so far?"',
  1157.         BUTTONTEXT "Great|Mediocre|Rubbish"
  1158.      
  1159.      if RESULT == 0 then
  1160.         REQUEST_MESSAGE TEXT '"Sorry, I was trying very hard."'
  1161.      else if RESULT == 2 then
  1162.         REQUEST_MESSAGE TEXT '"It gets better."'
  1163.      else do
  1164.         REQUEST_MESSAGE TEXT '"We like happy users."'
  1165.         REQUEST_MESSAGE TEXT '"Treat yourself to a coffee."'
  1166.         end
  1167.      
  1168.      exit
  1169.  
  1170.    This shows:
  1171.  
  1172.   1. Normally ARexx ignores the values returned by commands. To allow
  1173.      commands to return values, use "options results"; this is done for
  1174.      you in the blank ARexx script.
  1175.  
  1176.   2. Unless otherwise specified (see Return values) commands return the
  1177.      results of their operation in a variable called "RESULT". The
  1178.      command REQUEST_MESSAGE returns the value of the button that the
  1179.      user pressed.  It is this value that we can test for.
  1180.  
  1181.   3. The `if' tests are shown above. Note that if you only want to
  1182.      perform one operation as part of the `if', you can just place it
  1183.      after the `then'. If you wish to perform more operations, they
  1184.      must be placed in  a `do / end' set.
  1185.  
  1186.    OK, that's about it for the introduction to ARexx. We really suggest
  1187. now that you look at the example scripts provided with TextureStudio
  1188. (see Example scripts) to learn more examples. Have fun!
  1189.  
  1190. Command templates
  1191. =================
  1192.  
  1193.    The parameters passed to the ARexx commands closely follow
  1194. Commodore's style guidelines. The parsing of the arguments follows the
  1195. standard template format described below.
  1196.  
  1197.    Commands are always of the form:
  1198.  
  1199.      command [options]
  1200.  
  1201.    The command may be something like `OPEN' or `COLOUR_SET' and the
  1202. options may be filenames, numbers etc... A typical command template may
  1203. look like:
  1204.  
  1205.      OPEN FILE/A,FLUSH/S
  1206.  
  1207.    The commands and options are not case sensitive, therefore `OPEN',
  1208. `Open' or `open' can be used to open a file. The options after the
  1209. command name are separated by commas, and are named (e.g. FILE or FLUSH
  1210. are option names). After the name, follows an optional modifier (e.g.
  1211. /A or /S are modifiers) which describes what type of information the
  1212. option specifies.
  1213.  
  1214.        When using the command, the option names may be ommitted if the
  1215. parameters for the command are given in the same order as the options
  1216. in the template, but for clarity it is recommended that the option
  1217. names be used.
  1218.  
  1219.    The following modifiers are used:
  1220.  
  1221. No modifier
  1222.      If the option has no modifier, the option is expecting a string.
  1223.      Strings are lines of text with no spaces; to use a string with a
  1224.      space, place the string in double-quotes (").
  1225.  
  1226. Multiple strings (/M)
  1227.      Many strings can be specified if an option uses this modifier.
  1228.  
  1229. Numeric (/N)
  1230.      Numeric options allow both positive and negative integers.
  1231.      Floating point numbers (decimals) are given as strings in
  1232.      TextureStudio.
  1233.  
  1234. Boolean (/S)
  1235.      Some options can be specified to "switch" that option on. By
  1236.      leaving the option out, the option is switched off.
  1237.  
  1238. Keyword (/K)
  1239.      A keyword option shows that the option name must be used to set
  1240.      this option.
  1241.  
  1242. Always (/A)
  1243.      This option must always be included in this command.
  1244.  
  1245.    In practice, it soon becomes very easy to interpret command
  1246. templates - some examples with explanations are given below:
  1247.  
  1248.      OPEN FILE/A,FLUSH/S
  1249.  
  1250.    The command `OPEN' is used to open a texture module and load it into
  1251. TextureStudio. OPEN requires a filename (FILE/A is a string, and is
  1252. always required), and an optional FORCE switch. The following are valid
  1253. OPEN commands:
  1254.  
  1255.    The following would load in a texture module called `Radar.itx' from
  1256. the current directory and add it to any other textures that are already
  1257. open.
  1258.  
  1259.      OPEN "Radar.itx"
  1260.  
  1261.    The following would open a texture called `Target.itx' from a drawer
  1262. called `Textures' in the current directory. It would also flush out
  1263. (close) any textures that are already open.
  1264.  
  1265.      OPEN "Textures/Target.itx" FORCE
  1266.  
  1267.      COLOUR_SET COLOUR/A,R/N,G/N,B/N
  1268.  
  1269.    This command is used to set the colour of the background, light,
  1270. object or object filter.
  1271.  
  1272.    `COLOUR' is a string which must always be supplied, it determines
  1273. which of the above colours is to be altered.
  1274.  
  1275.    `R/N',`G/N',`B/N' are integer numbers which set the red, green and
  1276. blue components of the colour respectively. They are optional.
  1277.  
  1278.    The following sets the background colour to be bright red.
  1279.  
  1280.      COLOUR_SET BACKGROUND 255 0 0
  1281.  
  1282.    The following sets the green component of the light to be 128 (half
  1283. brightness)
  1284.  
  1285.      COLOUR_SET LIGHT G 128
  1286.  
  1287.    The following is an error, an incorrect `COLOUR' parameters is used.
  1288.  
  1289.      COLOUR_SET 255 255 255
  1290.  
  1291.    The following is not an error, but will do nothing.
  1292.  
  1293.      COLOUR_SET OBJECTCOLOUR
  1294.  
  1295. Return values
  1296. =============
  1297.  
  1298.    The return values for the ARexx commands are specified in the same
  1299. notation as the input parameters, although the types of returned values
  1300. is more limited than the input parameter types. In order for results to
  1301. be returned from ARexx commands, it is essential that the line:
  1302.  
  1303.      options results
  1304.  
  1305.    be placed near the start of the ARexx script.
  1306.  
  1307.    Commands may return either strings, numbers or arrays of either. By
  1308. default, all ARexx commands return their values in a variable called
  1309. "RESULT". This is fine if the command returns a single number or
  1310. string. For example, the following call to the FILE_JOIN command (see
  1311. FILE_JOIN) would return the string "T:Image.ilbm" in the RESULT
  1312. variable:
  1313.  
  1314.      FILE_JOIN PATHPART "T:" FILEPART "Image.ilbm"
  1315.  
  1316.    If the user wishes to return the result in another variable other
  1317. than RESULT, they may specify the VAR keyword. For example, the
  1318. following would perform the same action as above, only putting the
  1319. result in the varible called "FULLNAME"
  1320.  
  1321.      FILE_JOIN PATHPART "T:" FILEPART "Image.ilbm" VAR FULLNAME
  1322.  
  1323.    Some ARexx commands return multiple values, and these to can be
  1324. returned in a single variable - each returned value in the variable is
  1325. seperated with a space. The following returns information about the
  1326. current image (see LIGHT_GET):
  1327.  
  1328.      LIGHT_GET
  1329.  
  1330.    and RESULT might look something like this:
  1331.  
  1332.      -0.700000 -0.700000 100 0 150.000000
  1333.  
  1334.    It is possible then to extract the desired information using ARexx's
  1335. built in parsing routines. A neater way to return multiple values
  1336. though is through a "stem" variable. Here, a base name for a variable
  1337. is given and the returned values' names get added to it. It is clearer
  1338. with an example:
  1339.  
  1340.      LIGHT_GET STEM LIGHT.
  1341.  
  1342.    would return the same information as previously, only it would
  1343. create the following variables:
  1344.  
  1345.      LIGHT.X_POS     = -0.700000
  1346.      LIGHT.Z_POS     = -0.700000
  1347.      LIGHT.INTENSITY = 100
  1348.      LIGHT.BACKLIGHT = 0
  1349.      LIGHT.DISTANCE  = 150.000000
  1350.  
  1351.    Now you can refer easily to the returned values.
  1352.  
  1353.    If an ARexx function returns an array of results, they are named as
  1354. follows:
  1355.  
  1356.      STEMNAME.RESULTNAME.NUMBER
  1357.  
  1358.    with the variable STEMNAME.RESULTNAME.COUNT holding the number of
  1359. returned results. This example would display a multi-select file
  1360. requester and return the selected files.
  1361.  
  1362.      REQUEST_MULTIFILE PATHPART "Textures" PATTERN "#?.itx" STEM MATCHED.
  1363.  
  1364.    which might return the following:
  1365.  
  1366.      MATCHED.FILES.COUNT = 4
  1367.      MATCHED.FILES.0 = Blades.itx
  1368.      MATCHED.FILES.1 = Radar.itx
  1369.      MATCHED.FILES.2 = Target.itx
  1370.      MATCHED.FILES.3 = WarningStripes.itx
  1371.  
  1372. Error checking
  1373. ==============
  1374.  
  1375.    TextureStudio uses the standard ARexx method of returning errors,
  1376. with a further extension.
  1377.  
  1378.    Whenever a command is executed, a variable called "RC" has its value
  1379. set by ARexx. If the command executed normally, RC is set to zero. If
  1380. any failure happened, RC is set to either 5 (warning), 10 (failure) or
  1381. 20 (serious failure).
  1382.  
  1383.    TextureStudio also sets the value of a further variable called
  1384. "RC2", which either contains a text description of the reason for
  1385. failure or a standard AmigaDos error code.
  1386.  
  1387.    A description string is returned in RC2 if a failure occurs within
  1388. the execution of a command. RC2 will be an AmigaDos error number if
  1389. there is an error with the command syntax (e.g. mis-spelled command
  1390. name or missing quotes).
  1391.  
  1392.    If, for example the user was to try and close a render screen that
  1393. wasn't open, RC and RC2 would be set to the following:
  1394.  
  1395.      RC = 10
  1396.      RC2 = "RENDERSCREEN_CLOSE, No render screen open."
  1397.  
  1398.    If the close operation were to be performed with the command:
  1399.  
  1400.      COLSE
  1401.  
  1402.    the following values would be set:
  1403.  
  1404.      RC = 10
  1405.      RC2 = 236
  1406.  
  1407.    where AmigaDos error 236 represents `not implemented', i.e. unknown
  1408. command. The default blank script template will convert the most common
  1409. likely AmigaDos error codes into description strings (see Commodore's
  1410. AmigaDos manual for a full description of AmigaDos errors).
  1411.  
  1412.    By default, the blank script template turns on automatic error
  1413. checking. The line:
  1414.  
  1415.      signal on error
  1416.  
  1417.    tells TextureStudio to jump to the ERROR: label whenever a command
  1418. fails. The blank script then puts up a requester showing the error.
  1419.  
  1420.    The user may wish to turn off the automatic error checking to
  1421. perform error checking themselves. This is neccessary, for example, if
  1422. the user wishes to trap the user pressing `Cancel' on a requester (this
  1423. returns an error). The following checks when the user cancels the file
  1424. requester:
  1425.  
  1426.      /* Turn off automatic error checking */
  1427.      
  1428.      signal off error
  1429.      
  1430.      /* Open the requester */
  1431.      
  1432.      REQUEST_FILE
  1433.      
  1434.      /* Check for the error condition */
  1435.      
  1436.      if RC ~= 0 then do
  1437.         REQUEST_MESSAGE TEXT '"An error occurred (user\n'||,
  1438.            'probably pressed Cancel)"'
  1439.         end
  1440.      else do
  1441.         REQUEST_MESSAGE TEXT '"You chose: '||RESULT||'"'
  1442.         end
  1443.  
  1444. Common ARexx problems
  1445. =====================
  1446.  
  1447. ARexx problem 1
  1448. ---------------
  1449.  
  1450.      "I can't use strings with spaces in them."
  1451.  
  1452.    Care must be taken when specifying string paramters when the string
  1453. contains space characters. Single quotes must be used around double
  1454. quotes to stop the string from being seen as many different strings.
  1455.  
  1456.    Consider the following example:
  1457.  
  1458.      REQUEST_MESSAGE TEXT "Hello"
  1459.  
  1460.    ARexx would evaluate the string "Hello" and give TextureStudio the
  1461. following command to execute:
  1462.  
  1463.      REQUEST_MESSAGE TEXT Hello
  1464.  
  1465.    i.e. without the double quotes. In this example, REQUEST_MESSAGE
  1466. would do as expected. The problems start when strings have spaces in
  1467. them; consider the following:
  1468.  
  1469.      REQUEST_MESSAGE TEXT "Hello world"
  1470.  
  1471.    ARexx would evaluate the string "Hello world" and give TextureStudio
  1472. the following command to execute:
  1473.  
  1474.      REQUEST_MESSAGE TEXT Hello world
  1475.  
  1476.    which is not what is desired. The Hello becomes the TEXT value and
  1477. the world becomes the value of the next parameter (BUTTONTEXT in this
  1478. case). The result would be a requester with the text of "Hello" and a
  1479. button called "world". Now we must use the single quotes to stop ARexx
  1480. from evaluating the string:
  1481.  
  1482.      REQUEST_MESSAGE TEXT '"Hello world"'
  1483.  
  1484.    would send TextureStudio the following command:
  1485.  
  1486.      REQUEST_MESSAGE TEXT "Hello world"
  1487.  
  1488.    which shows that the whole string "Hello world" belongs to the TEXT
  1489. parameter.
  1490.  
  1491. ARexx problem 2
  1492. ---------------
  1493.  
  1494.      "I can't set the same variable twice with VAR"
  1495.  
  1496.    If you are able to return a value from a command into a given
  1497. variable name once in a program, but unable to do it again it's
  1498. probably due to ARexx evaluating your variable the second time it is
  1499. used.
  1500.  
  1501.    For example, the following won't work:
  1502.  
  1503.      FILE_JOIN FILEPART '"Work:"' '"MyFile"' VAR fullname
  1504.      
  1505.      FILE_JOIN FILEPART '"Work:"' '"MyOtherFile"' VAR fullname
  1506.  
  1507.    because ARexx will evaluate `fullname' in the second FILE_JOIN, i.e.
  1508. ARexx will see the second FILE_JOIN as:
  1509.  
  1510.      FILE_JOIN FILEPART "Work:" "MyFile" VAR Work:MyFile
  1511.  
  1512.    The solution is to enclose the variable name in single quotes to
  1513. stop it from being evaluated, i.e. our second FILE_JOIN is written as:
  1514.  
  1515.      FILE_JOIN FILEPART '"Work:"' '"MyOtherFile"' VAR 'fullname'
  1516.  
  1517. ARexx tips
  1518. ==========
  1519.  
  1520. ARexx tip 1
  1521. -----------
  1522.  
  1523.      "Shortening command names"
  1524.  
  1525.    Using the current ARexx command interpreter within TextureStudio, it
  1526. is possible to specify a shorter version of each ARexx command. For
  1527. example, `OP' could be used as a synonym for `OPEN' and `CL' is a
  1528. synonym for `CLOSE'. The following should be noted however:
  1529.  
  1530.    * This behaviour may be removed in a future version of
  1531.      TextureStudio. Therefore we recommend that in ARexx scripts, the
  1532.      full command names should be used.
  1533.  
  1534.    * If the shortened command name is ambiguous, the first matching
  1535.      command will be executed. For example, if the shortened command
  1536.      `REQUEST' is used, `REQUEST_DIR' will be executed.
  1537.  
  1538. Example scripts
  1539. ===============
  1540.  
  1541.    The following scripts require TextureStudio to already be running.
  1542.  
  1543.    To run the script, either double click on the script icon from the
  1544. Workbench, or from the shell, type
  1545.      rx RadarAnim.tsrx
  1546.    for example.
  1547.  
  1548. RadarAnim script
  1549. ----------------
  1550.  
  1551. Description
  1552.      The user will be asked to select the `Radar.itx' texture, the
  1553.      default directory will be the user's current texture path.
  1554.  
  1555.      The user will then be prompted to select a destination directory
  1556.      where the rendered pictures will be saved to.
  1557.  
  1558.      Finally, the user will be asked to select the number of frames
  1559.      from 10, 25, 50 or 75.
  1560.  
  1561.      TextureStudio will then render the frames of the animation as HAM
  1562.      screens to the destination directory.
  1563.  
  1564.      The images will be rendered to a screen at the back, this can be
  1565.      brought to the front if you wish, to see the image being rendered.
  1566.  
  1567.      The resulting frames can be joined together into an animation
  1568.      using a suitable program.
  1569.  
  1570.      The animation shows a radar scanner scanning through 360 degrees.
  1571.  
  1572. Known bugs
  1573.      None.
  1574.  
  1575. RenderTextures script
  1576. ---------------------
  1577.  
  1578. Description
  1579.      The user will then be prompted to select some texture modules to
  1580.      render. By shift-clicking on the files, many textures can be
  1581.      selected.
  1582.  
  1583.      The user will then be prompted to give a destination directory for
  1584.      the resulting render screen files created.
  1585.  
  1586.      The script renders each texture in turn and then saves the HAM
  1587.      render screen to the given directory. All the settings e.g.
  1588.      object, light etc. are kept as the current settings. This is
  1589.      particually useful for keeping a record of all the textures and
  1590.      what they look like for quick reference.
  1591.  
  1592. Known bugs
  1593.      None.
  1594.  
  1595. RenderTexturesIS script
  1596. -----------------------
  1597.  
  1598.    The ARexx script requires ImageStudio, see ImageStudio.
  1599.  
  1600. Description
  1601.      This scripts is similar to the `RenderTextures' script but
  1602.      requires both TextureStudio and ImageStudio running at the same
  1603.      time.
  1604.  
  1605.      This scripts renders each texture, saves it out as a 24-bit for
  1606.      ImageStudio which then reduces the image down to 32 colour with
  1607.      dithering and then saves the new image as an IFF-ILBM file.
  1608.  
  1609.      See RenderTextures script.
  1610.  
  1611. Known bugs
  1612.      None.
  1613.  
  1614. RotatePlanetAnim script
  1615. -----------------------
  1616.  
  1617. Description
  1618.      This script requires the `GasGiant' texture supplied with Imagine3.
  1619.  
  1620.      The script is similar to the `RadarAnim' script but produces an
  1621.      animation which looks similar to a planet (like Jupiter) spinning
  1622.      on its axis. See RadarAnim script.
  1623.  
  1624. Known bugs
  1625.      None.
  1626.  
  1627. ARexx commands
  1628. ==============
  1629.  
  1630.    More detailed information on each of the individual ARexx commands
  1631. can be found below.
  1632.  
  1633. AXIS_GET
  1634. --------
  1635.  
  1636. Command
  1637.      AXIS_GET
  1638.  
  1639. Parameters template
  1640.      None.
  1641.  
  1642. Return template
  1643.      X_ALIGNMENT,Y_ALIGNMENT,Z_ALIGNMENT,
  1644.      X_SIZE,Y_SIZE,Z_SIZE,
  1645.      X_POSITION,Y_POSITION,Z_POSITION
  1646.  
  1647. Description
  1648.      This command returns the axis settings for the currently selected
  1649.      texture.
  1650.  
  1651. Parameters
  1652.      None.
  1653.  
  1654. Returns
  1655.     X_ALIGNMENT,Y_ALIGNMENT,Z_ALIGNMENT
  1656.           These variables contain the axis alignment as floating point
  1657.           numbers.
  1658.  
  1659.     X_SIZE,Y_SIZE,Z_SIZE
  1660.           These variables contain the axis size as floating point
  1661.           numbers.
  1662.  
  1663.     X_POSITION,Y_POSITION,Z_POSITION
  1664.           These variables contain the axis position as floating point
  1665.           numbers.
  1666.  
  1667. Errors
  1668.      rc = 0 if the operation was successful.
  1669.  
  1670.      rc = 10 if the operation failed for any reason, rc2 will contain a
  1671.      string describing the problem.
  1672.  
  1673. Example
  1674.      The following example gets the current axis settings and puts them
  1675.      in a stem called axis. The settings can then be accessed by
  1676.      `axis.x_alignment', `axis.y_alignment' ....
  1677.  
  1678.           AXIS_GET STEM 'axis.'
  1679.  
  1680. Known bugs
  1681.      None.
  1682.  
  1683.      See AXIS_SET.
  1684.  
  1685. AXIS_SET
  1686. --------
  1687.  
  1688. Command
  1689.      AXIS_SET
  1690.  
  1691. Parameters template
  1692.      X_ALIGNMENT,Y_ALIGNMENT,Z_ALIGNMENT,
  1693.      X_SIZE,Y_SIZE,Z_SIZE,
  1694.      X_POSITION,Y_POSITION,Z_POSITION
  1695.  
  1696. Return template
  1697.      None.
  1698.  
  1699. Description
  1700.      This command sets the axis settings for the currently selected
  1701.      texture.
  1702.  
  1703. Parameters
  1704.     X_ALIGNMENT,Y_ALIGNMENT,Z_ALIGNMENT
  1705.           These variables contain the axis alignment as floating point
  1706.           numbers.
  1707.  
  1708.     X_SIZE,Y_SIZE,Z_SIZE
  1709.           These variables contain the axis size as floating point
  1710.           numbers.
  1711.  
  1712.     X_POSITION,Y_POSITION,Z_POSITION
  1713.           These variables contain the axis position as floating point
  1714.           numbers.
  1715.  
  1716. Returns
  1717.      Nothing.
  1718.  
  1719. Errors
  1720.      rc = 0 if the operation was successful.
  1721.  
  1722.      rc = 10 if the operation failed for any reason, rc2 will contain a
  1723.      string describing the problem.
  1724.  
  1725. Example
  1726.      The following example sets the axis alignment so that the z-axis
  1727.      is perpendicular to the surface of a vertical plane.
  1728.  
  1729.           AXIS_SET X_ALIGNMENT -90 Y_ALIGNMENT 0 Z_ALIGNMENT 0
  1730.  
  1731. Known bugs
  1732.      None.
  1733.  
  1734.      See AXIS_GET.
  1735.  
  1736. CLOSE
  1737. -----
  1738.  
  1739. Command
  1740.      CLOSE
  1741.  
  1742. Parameters template
  1743.      NAME,ALL/S
  1744.  
  1745. Return template
  1746.      None.
  1747.  
  1748. Description
  1749.      This commands closes one or all of the currently open texures.
  1750.  
  1751.      If no parameters are supplied, only the currently selected texture
  1752.      is closes.
  1753.  
  1754. Parameters
  1755.     NAME
  1756.           NAME is the name of the texture to be closed. This can be
  1757.           shortened to the first few characters in the name.
  1758.  
  1759.           The NAME string is case insensitve.
  1760.  
  1761.     FLUSH/S
  1762.           If FLUSH is given, all currently open textures are closed.
  1763.  
  1764. Returns
  1765.      Nothing.
  1766.  
  1767. Errors
  1768.      rc = 0 if the operation was successful.
  1769.  
  1770.      rc = 10 if the operation failed for any reason, rc2 will contain a
  1771.      string describing the problem.
  1772.  
  1773. Example
  1774.      The following example closes the currently selected texture.
  1775.  
  1776.           CLOSE
  1777.  
  1778.      The next example closes any textures beginning with `Rad', which
  1779.      could close `Radar', `RadCheks' ....
  1780.  
  1781.           CLOSE "Rad"
  1782.  
  1783.      The following example flushes out all existing textures.
  1784.  
  1785.           CLOSE ALL
  1786.  
  1787. Known bugs
  1788.      None.
  1789.  
  1790. COLOUR_GET
  1791. ----------
  1792.  
  1793. Command
  1794.      COLOUR_GET
  1795.  
  1796. Parameters template
  1797.      COLOUR/A
  1798.  
  1799. Return template
  1800.      R/N,G/N,B/N
  1801.  
  1802. Description
  1803.      COLOUR_GET gets the red, green and blue values of the given colour.
  1804.  
  1805. Parameters
  1806.     COLOUR/A
  1807.           This specifies which colour is to be returned. Valid strings
  1808.           are:
  1809.  
  1810.          BACKGROUND (shortest abbreviation: BACK)
  1811.          LIGHT (shortest abbreviation: LIGHT)
  1812.          OBJECTCOLOUR (shortest abbreviation: OBJECTCOL)
  1813.          OBJECTFILTER (shortest abbreviation: OBJECTFIL)
  1814. Returns
  1815.     R/N,G/N,B/N
  1816.           These are the red, green and blue componets of the given
  1817.           COLOUR, the numbers are between 0 and 255.
  1818.  
  1819. Errors
  1820.      rc = 0 if the operation was successful.
  1821.  
  1822.      rc = 10 if the operation failed for any reason, rc2 will contain a
  1823.      string describing the problem.
  1824.  
  1825. Example
  1826.      The following is an example where the colour of the light source
  1827.      is returned in the `light.' stem.
  1828.  
  1829.           COLOUR_GET LIGHT STEM 'light.'
  1830.  
  1831. Known bugs
  1832.      None.
  1833.  
  1834.      See COLOUR_SET.
  1835.  
  1836.      See Colours window.
  1837.  
  1838. COLOUR_SET
  1839. ----------
  1840.  
  1841. Command
  1842.      COLOUR_SET
  1843.  
  1844. Parameters template
  1845.      COLOUR/A,R/N,G/N,B/N
  1846.  
  1847. Return template
  1848.      None.
  1849.  
  1850. Description
  1851.      This command sets the red, green and blue components of the given
  1852.      COLOUR.
  1853.  
  1854. Parameters
  1855.     COLOUR/A
  1856.           This specifies which colour is to be altered. Valid strings
  1857.           are:
  1858.  
  1859.          BACKGROUND (shortest abbreviation: BACK)
  1860.          LIGHT (shortest abbreviation: LIGHT)
  1861.          OBJECTCOLOUR (shortest abbreviation: OBJECTCOL)
  1862.          OBJECTFILTER (shortest abbreviation: OBJECTFIL)
  1863.     R/N,G/N,B/N
  1864.           These are the red, green and blue componets for the given
  1865.           COLOUR, the numbers should be between 0 and 255.
  1866.  
  1867. Returns
  1868.      Nothing.
  1869.  
  1870. Errors
  1871.      rc = 0 if the operation was successful.
  1872.  
  1873.      rc = 10 if the operation failed for any reason, rc2 will contain a
  1874.      string describing the problem.
  1875.  
  1876. Example
  1877.      The following example sets the colour of the background to be
  1878.      white.
  1879.  
  1880.           COLOUR_SET BACKGROUND 255 255 255
  1881.  
  1882.      The following example turns the red component of the light source
  1883.      off.
  1884.  
  1885.           COLOUR_SET LIGHT R 0
  1886.  
  1887. Known bugs
  1888.      None.
  1889.  
  1890.      See COLOUR_GET.
  1891.  
  1892.      See Colours window.
  1893.  
  1894. FILE_JOIN
  1895. ---------
  1896.  
  1897. Command
  1898.      FILE_JOIN
  1899.  
  1900. Parameters template
  1901.      PATHPART/A, FILEPART/A
  1902.  
  1903. Return template
  1904.      FILE
  1905.  
  1906. Description
  1907.      Joins the path part of a filename to the file part of a filename,
  1908.      returning the full filename. Adds `/' and `:' where appropriate to
  1909.      create a full filename.
  1910.  
  1911. Parameters
  1912.     PATHPART/A
  1913.           The path (directory) part of the filename to be created.
  1914.  
  1915.     FILEPART/A
  1916.           The file part of the filename to be created.
  1917.  
  1918. Returns
  1919.     FILE
  1920.           The full filename created from the path and file parts.
  1921.  
  1922. Errors
  1923.      rc = 0 if the operation was successful.
  1924.  
  1925.      rc = 10 if the operation failed for any reason, rc2 will contain a
  1926.      string describing the problem.
  1927.  
  1928. Example
  1929.      The following creates the filename "Textures/Radar.itx" from the
  1930.      seperate path and fileparts - the result is put in a pop up
  1931.      requester:
  1932.  
  1933.           FILE_JOIN PATHPART "Textures" FILEPART "Radar.itx"
  1934.           
  1935.           REQUEST_MESSAGE TEXT '"'RESULT'"'
  1936.  
  1937.      The following creates the filename "Ram:Radar.itx" from the
  1938.      seperate path and fileparts (note how the '/' seperater is not
  1939.      needed) - the result is put in a pop up requester:
  1940.  
  1941.           FILE_JOIN PATHPART "Ram:" FILEPART "Radar.itx"
  1942.           
  1943.           REQUEST_MESSAGE TEXT '"'RESULT'"'
  1944.  
  1945. Known bugs
  1946.      None.
  1947.  
  1948.      See FILE_SPLIT.
  1949.  
  1950. FILE_SPLIT
  1951. ----------
  1952.  
  1953. Command
  1954.      FILE_SPLIT
  1955.  
  1956. Parameters template
  1957.      FILE/A
  1958.  
  1959. Return template
  1960.      PATHPART, FILEPART
  1961.  
  1962. Description
  1963.      Splits the given filename into seperate path and file parts.
  1964.  
  1965. Parameters
  1966.     FILE/A
  1967.           The full filename to be split.
  1968.  
  1969. Returns
  1970.     PATHPART
  1971.           The path (directory) part of the filename.
  1972.  
  1973.     FILEPART
  1974.           The file part of the filename.
  1975.  
  1976. Errors
  1977.      rc = 0 if the operation was successful.
  1978.  
  1979.      rc = 10 if the operation failed for any reason, rc2 will contain a
  1980.      string describing the problem.
  1981.  
  1982. Example
  1983.      The following seperates the filename "Textures/Radar.itx" into
  1984.      seperate path and fileparts - the result is put in a pop up
  1985.      requester:
  1986.  
  1987.           FILE_SPLIT FILE "Textures/Radar.itx" STEM FILENAME.
  1988.           
  1989.           REQUEST_MESSAGE TEXT '"Path:'FILENAME.PATHPART,
  1990.              'File:'FILENAME.FILEPART'"'
  1991.  
  1992.      The following seperates the filename "Ram:Radar.itx" into seperate
  1993.      path and fileparts - the result is put into the default settings
  1994.      of a file requester:
  1995.  
  1996.           FILE_SPLIT FILE "Ram:Radar.itx" STEM FILENAME.
  1997.           
  1998.           REQUEST_FILE PATHPART '"'FILENAME.PATHPART'"',
  1999.              FILE '"'FILENAME.PATHPART'"'
  2000.  
  2001. Known bugs
  2002.      None.
  2003.  
  2004.      See FILE_JOIN.
  2005.  
  2006. GUI_BLOCK
  2007. ---------
  2008.  
  2009. Command
  2010.      GUI_BLOCK
  2011.  
  2012. Parameters template
  2013.      None.
  2014.  
  2015. Return template
  2016.      None.
  2017.  
  2018. Description
  2019.      Blocks any input to all of TextureStudio's windows. Stops the user
  2020.      from altering anything whilst a script is running.
  2021.  
  2022.      Note: Always remember to unblock the GUI once you have finished
  2023.      the script.
  2024.  
  2025. Parameters
  2026.      None.
  2027.  
  2028. Returns
  2029.      Nothing.
  2030.  
  2031. Errors
  2032.      rc = 0 if the operation was successful.
  2033.  
  2034.      rc = 10 if the operation failed for any reason, rc2 will contain a
  2035.      string describing the problem.
  2036.  
  2037. Example
  2038.      The following example blocks input to all the windows.
  2039.  
  2040.           GUI_BLOCK
  2041.  
  2042. Known bugs
  2043.      None.
  2044.  
  2045.      See GUI_UNBLOCK.
  2046.  
  2047. GUI_UNBLOCK
  2048. -----------
  2049.  
  2050. Command
  2051.      GUI_UNBLOCK
  2052.  
  2053. Parameters template
  2054.      None.
  2055.  
  2056. Return template
  2057.      None.
  2058.  
  2059. Description
  2060.      Unblocks all the windows after a GUI_BLOCK call. Allows the user
  2061.      to interact with the program again.
  2062.  
  2063.      Note: it is safe to call GUI_UNBLOCK, even if the windows are not
  2064.      currently blocked by GUI_BLOCK.
  2065.  
  2066. Parameters
  2067.      None.
  2068.  
  2069. Returns
  2070.      Nothing.
  2071.  
  2072. Errors
  2073.      rc = 0 if the operation was successful.
  2074.  
  2075.      rc = 10 if the operation failed for any reason, rc2 will contain a
  2076.      string describing the problem.
  2077.  
  2078. Example
  2079.      The following unblocks all the windows.
  2080.  
  2081.           GUI_UNBLOCK
  2082.  
  2083. Known bugs
  2084.      None.
  2085.  
  2086.      See GUI_BLOCK.
  2087.  
  2088. LIGHT_GET
  2089. ---------
  2090.  
  2091. Command
  2092.      LIGHT_GET
  2093.  
  2094. Parameters template
  2095.      None.
  2096.  
  2097. Return template
  2098.      X_POS,Z_POS,INTENSITY/N,BACKLIGHT/N,POSITION,DISTANCE
  2099.  
  2100. Description
  2101.      Gets the current settings about the light source.
  2102.  
  2103. Parameters
  2104.      None.
  2105.  
  2106. Returns
  2107.     X_POS,Z_POS
  2108.           These give the position of the light relative to the width of
  2109.           the scene visible. The floating point numbers are between -1
  2110.           and 1.
  2111.  
  2112.           -1 corresponds to the extreme left and bottom.   1
  2113.           corresponds to the extreme right and top.
  2114.  
  2115.     INTENSITY
  2116.           Gives the current light intensity from 0 to 200%.
  2117.  
  2118.     BACKLIGHT
  2119.           Gives the backlighting setting from 0 to 100%.
  2120.  
  2121.     POSITION
  2122.           This is a string containing the current setting of the
  2123.           `Position' slider in the light window. Can be `TOPLEFT',
  2124.           `TOP', `TOPRIGHT', `LEFT', `CENTRE', `RIGHT', `BOTTOMLEFT',
  2125.           `BOTTOM', `BOTTOMRIGHT' or `CUSTOM'.
  2126.  
  2127.     DISTANCE
  2128.           Gives the distance of the light source from the centre of the
  2129.           scene.
  2130.  
  2131. Errors
  2132.      rc = 0 if the operation was successful.
  2133.  
  2134.      rc = 10 if the operation failed for any reason, rc2 will contain a
  2135.      string describing the problem.
  2136.  
  2137. Example
  2138.      The following example gets the current light settings and puts
  2139.      them in a stem called `light.'.
  2140.  
  2141.           LIGHT_GET STEM 'light.'
  2142.  
  2143. Known bugs
  2144.      None.
  2145.  
  2146.      See LIGHT_SET.
  2147.  
  2148.      See Light window.
  2149.  
  2150. LIGHT_SET
  2151. ---------
  2152.  
  2153. Command
  2154.      LIGHT_SET
  2155.  
  2156. Parameters template
  2157.      X_POS,Z_POS,INTENSITY/N,BACKLIGHT/N,POSITION,DISTANCE
  2158.  
  2159. Return template
  2160.      None.
  2161.  
  2162. Description
  2163.      Sets the current settings for the light source.
  2164.  
  2165. Parameters
  2166.     X_POS,Z_POS
  2167.           These set the position of the light relative to the width of
  2168.           the scene visible. The floating point numbers must be between
  2169.           -1 and 1.
  2170.  
  2171.           -1 corresponds to the extreme left and bottom.   1
  2172.           corresponds to the extreme right and top.
  2173.  
  2174.     INTENSITY
  2175.           Sets the current light intensity from 0 to 200%.
  2176.  
  2177.     BACKLIGHT
  2178.           Sets the backlighting setting from 0 to 100%.
  2179.  
  2180.     POSITION
  2181.           This is a string containing the current setting of the
  2182.           `Position' slider in the light window. Must be `TOPLEFT',
  2183.           `TOP', `TOPRIGHT', `LEFT', `CENTRE', `RIGHT', `BOTTOMLEFT',
  2184.           `BOTTOM', `BOTTOMRIGHT' or `CUSTOM'.
  2185.  
  2186.     DISTANCE
  2187.           Sets the distance of the light source from the centre of the
  2188.           scene.
  2189.  
  2190. Returns
  2191.      Nothing.
  2192.  
  2193. Errors
  2194.      rc = 0 if the operation was successful.
  2195.  
  2196.      rc = 10 if the operation failed for any reason, rc2 will contain a
  2197.      string describing the problem.
  2198.  
  2199. Example
  2200.      The following example sets the light source to be in the extreme
  2201.      top right position.
  2202.  
  2203.           LIGHT_SET X_POS 1 Z_POS 1 POSITION "CUSTOM"
  2204.  
  2205. Known bugs
  2206.      None.
  2207.  
  2208.      See LIGHT_GET.
  2209.  
  2210.      See Light window.
  2211.  
  2212. OBJECT_GET
  2213. ----------
  2214.  
  2215. Command
  2216.      OBJECT_GET
  2217.  
  2218. Parameters template
  2219.      None.
  2220.  
  2221. Return template
  2222.      OBJECT,RADIUS
  2223.  
  2224. Description
  2225.      Gets the current object type and radius.
  2226.  
  2227. Parameters
  2228.      None.
  2229.  
  2230. Returns
  2231.     OBJECT
  2232.           Name of the type of object, can be `PLANE', `CYLINDER' or
  2233.           `SPHERE'.
  2234.  
  2235.     RADIUS
  2236.           A floating point number representing the radius of the object.
  2237.  
  2238. Errors
  2239.      rc = 0 if the operation was successful.
  2240.  
  2241.      rc = 10 if the operation failed for any reason, rc2 will contain a
  2242.      string describing the problem.
  2243.  
  2244. Example
  2245.      The following gets the current object settings and places them
  2246.      into a stem called `object.'.
  2247.  
  2248.           OBJECT_GET STEM 'object.'
  2249.  
  2250. Known bugs
  2251.      None.
  2252.  
  2253.      See OBJECT_SET.
  2254.  
  2255.      See Object window.
  2256.  
  2257. OBJECT_SET
  2258. ----------
  2259.  
  2260. Command
  2261.      OBJECT_SET
  2262.  
  2263. Parameters template
  2264.      OBJECT,RADIUS
  2265.  
  2266. Return template
  2267.      None.
  2268.  
  2269. Description
  2270.      Sets the current object type and radius.
  2271.  
  2272. Parameters
  2273.     OBJECT
  2274.           Name of the type of object, can be `PLANE', `CYLINDER' or
  2275.           `SPHERE'.
  2276.  
  2277.     RADIUS
  2278.           A floating point number representing the radius of the object.
  2279.  
  2280. Returns
  2281.      Nothing.
  2282.  
  2283. Errors
  2284.      rc = 0 if the operation was successful.
  2285.  
  2286.      rc = 10 if the operation failed for any reason, rc2 will contain a
  2287.      string describing the problem.
  2288.  
  2289. Example
  2290.      The following sets the current object to be a sphere of radius 30
  2291.      units.
  2292.  
  2293.           OBJECT_SET "SPHERE" 30
  2294.  
  2295. Known bugs
  2296.      None.
  2297.  
  2298.      See OBJECT_GET.
  2299.  
  2300.      See Object window.
  2301.  
  2302. OPEN
  2303. ----
  2304.  
  2305. Command
  2306.      OPEN
  2307.  
  2308. Parameters template
  2309.      FILE/A,FLUSH/S
  2310.  
  2311. Return template
  2312.      None.
  2313.  
  2314. Description
  2315.      This command opens a standard Imagine3 texture module. See Open
  2316.      texture.
  2317.  
  2318. Parameters
  2319.     FILE/A
  2320.           This specifies the full filename of the texture module to be
  2321.           loaded.
  2322.  
  2323.     FLUSH/S
  2324.           This specifies whether any existing textures should be
  2325.           flushed out before loading in the specified file. Note that
  2326.           the `Flush textures on open' preference is ignored from
  2327.           ARexx, see Flush textures on open.
  2328.  
  2329. Returns
  2330.      Nothing.
  2331.  
  2332. Errors
  2333.      rc = 0 if the operation was successful.
  2334.  
  2335.      rc = 10 if the operation failed for any reason, rc2 will contain a
  2336.      string describing the problem.
  2337.  
  2338. Example
  2339.      The following opens a texture module called `Radar.itx' from the
  2340.      `Textures' drawer and closes all other textures.
  2341.  
  2342.           OPEN "Textures/Radar.itx" FLUSH
  2343.  
  2344.      The following loads the `Target.itx' file from the user's current
  2345.      texture directory.
  2346.  
  2347.      TEXTUREPATH_GET VAR 'texture_path'
  2348.  
  2349.      FILE_JOIN '"'texture_path'"' '"'Target.itx'"' VAR 'texture_file'
  2350.  
  2351.      OPEN '"'texture_file'"'
  2352.  
  2353. Known bugs
  2354.      None.
  2355.  
  2356. PARAMETER_GET
  2357. -------------
  2358.  
  2359. Command
  2360.      PARAMETER_GET
  2361.  
  2362. Parameters template
  2363.      INDEX/N/A
  2364.  
  2365. Return template
  2366.      VALUE,TEXT
  2367.  
  2368. Description
  2369.      This command is used to get a parameter value (floating point
  2370.      number) and text field (name of parameter). It gets the parameters
  2371.      from the currently selected texture.
  2372.  
  2373. Parameters
  2374.     INDEX/N/A
  2375.           This is the index number of the parameter and must be from 0
  2376.           to 15.
  2377.  
  2378. Returns
  2379.     VALUE
  2380.           This is the floating point number associated with the given
  2381.           parameter INDEX.
  2382.  
  2383.     TEXT
  2384.           This is the text field of the parameter, e.g. `Colour Red'.
  2385.  
  2386. Errors
  2387.      rc = 0 if the operation was successful.
  2388.  
  2389.      rc = 10 if the operation failed for any reason, rc2 will contain a
  2390.      string describing the problem.
  2391.  
  2392. Example
  2393.      The following gets the fifth (number 4) parameter from the current
  2394.      texture and returns the value and text in a stem called `param.'.
  2395.  
  2396.           PARAMETER_GET 4 STEM 'param.'
  2397.  
  2398.      The following example adds 1 onto the first parameter.
  2399.  
  2400.           PARAMETER_GET 0 STEM 'param.'
  2401.           
  2402.           new_value = param.value + 1
  2403.           
  2404.           PARAMETER_SET 0 '"'new_value'"'
  2405.  
  2406. Known bugs
  2407.      None.
  2408.  
  2409.      See PARAMETER_SET.
  2410.  
  2411.      See Parameters window.
  2412.  
  2413. PARAMETER_SET
  2414. -------------
  2415.  
  2416. Command
  2417.      PARAMETER_SET
  2418.  
  2419. Parameters template
  2420.      INDEX/N/A,VALUE/A
  2421.  
  2422. Return template
  2423.      None.
  2424.  
  2425. Description
  2426.      Sets the given parameter to a given value for the currently
  2427.      selected texture.
  2428.  
  2429. Parameters
  2430.     INDEX/N/A
  2431.           This is the index number of the parameter and must be from 0
  2432.           to 15.
  2433.  
  2434.     VALUE/A
  2435.           This is a floating point number associated with the given
  2436.           parameter INDEX.
  2437.  
  2438. Returns
  2439.      Nothing.
  2440.  
  2441. Errors
  2442.      rc = 0 if the operation was successful.
  2443.  
  2444.      rc = 10 if the operation failed for any reason, rc2 will contain a
  2445.      string describing the problem.
  2446.  
  2447. Example
  2448.      The following sets the last parameter (number 15) to be 0
  2449.  
  2450.           PARAMETER_SET 15 0
  2451.  
  2452. Known bugs
  2453.      None.
  2454.  
  2455.      See PARAMETER_GET.
  2456.  
  2457.      See Parameters window.
  2458.  
  2459. PREFS_GET
  2460. ---------
  2461.  
  2462. Command
  2463.      PREFS_GET
  2464.  
  2465. Parameters template
  2466.      None.
  2467.  
  2468. Return template
  2469.      ALLOWTRANSOBJECT/N,CALCSURFNORMALS/N,FULLLIGHTCALCS/N,
  2470.      ANTIALIASING,FILEFORMAT,JPEG_QUALITY/N
  2471.  
  2472. Description
  2473.      Gets the current preferences.
  2474.  
  2475. Parameters
  2476.      None.
  2477.  
  2478. Returns
  2479.     ALLOWTRANSOBJECT/N
  2480.           0 for off, 1 for on. See Allow transparent object.
  2481.  
  2482.     CALCSURFNORMALS/N
  2483.           0 for off, 1 for on. See Calculate surface normals.
  2484.  
  2485.     FULLLIGHTCALCS/N
  2486.           0 for off, 1 for on. See Full light calculations.
  2487.  
  2488.     ANTIALIASING
  2489.           The anti-aliasing mode, can be `NONE', `LOW', `MEDIUM',
  2490.           `HIGH' or `VERYHIGH'. See Anti-aliasing.
  2491.  
  2492.     FILEFORMAT
  2493.           The current render file format. Can be `IFF-ILBM', `JPEG' or
  2494.           `TARGA'. See Render file format.
  2495.  
  2496.     JPEG_QUALITY
  2497.           The quality of the JPEG output. See JPEG options.
  2498.  
  2499. Errors
  2500.      rc = 0 if the operation was successful.
  2501.  
  2502.      rc = 10 if the operation failed for any reason, rc2 will contain a
  2503.      string describing the problem.
  2504.  
  2505. Example
  2506.      The following returns the current preference settings and returns
  2507.      them in a stem called `pref.'.
  2508.  
  2509.           PREFS_GET STEM 'pref.'
  2510.  
  2511. Known bugs
  2512.      None.
  2513.  
  2514.      See PREFS_SET.
  2515.  
  2516. PREFS_SET
  2517. ---------
  2518.  
  2519. Command
  2520.      PREFS_SET
  2521.  
  2522. Parameters template
  2523.      ALLOWTRANSOBJECT/N,CALCSURFNORMALS/N,FULLLIGHTCALCS/N,
  2524.      ANTIALIASING,FILEFORMAT,JPEG_QUALITY/N
  2525.  
  2526. Return template
  2527.      None.
  2528.  
  2529. Description
  2530.      Sets any given preference(s).
  2531.  
  2532. Parameters
  2533.     ALLOWTRANSOBJECT/N
  2534.           0 for off, 1 for on. See Allow transparent object.
  2535.  
  2536.     CALCSURFNORMALS/N
  2537.           0 for off, 1 for on. See Calculate surface normals.
  2538.  
  2539.     FULLLIGHTCALCS/N
  2540.           0 for off, 1 for on. See Full light calculations.
  2541.  
  2542.     ANTIALIASING
  2543.           Sets the anti-aliasing mode, can be `NONE', `LOW', `MEDIUM',
  2544.           `HIGH' or `VERYHIGH'. See Anti-aliasing.
  2545.  
  2546.     FILEFORMAT
  2547.           Sets the current render file format. Can be `IFF-ILBM',
  2548.           `JPEG' or `TARGA'. See Render file format.
  2549.  
  2550.     JPEG_QUALITY
  2551.           Sets the quality of the JPEG output. See JPEG options.
  2552.  
  2553. Returns
  2554.      Nothing
  2555.  
  2556. Errors
  2557.      rc = 0 if the operation was successful.
  2558.  
  2559.      rc = 10 if the operation failed for any reason, rc2 will contain a
  2560.      string describing the problem.
  2561.  
  2562. Example
  2563.      The following sets the `Allow transparent object' preference off
  2564.      and sets the current render file format to be JPEG.
  2565.  
  2566.           PREFS_SET ALLOWTRANSOBJECT 0 FILEFORMAT "JPEG"
  2567.  
  2568. Known bugs
  2569.      None.
  2570.  
  2571.      See PREFS_GET.
  2572.  
  2573. RENDER
  2574. ------
  2575.  
  2576. Command
  2577.      RENDER
  2578.  
  2579. Parameters template
  2580.      TOBACK/S
  2581.  
  2582. Return template
  2583.      None.
  2584.  
  2585. Description
  2586.      Renders the current texture(s) to the HAM render screen.
  2587.  
  2588. Parameters
  2589.     TOBACK/S
  2590.           If this is specified, the render screen is not brought to the
  2591.           front when rendering, it remains at the back.
  2592.  
  2593. Returns
  2594.      Nothing.
  2595.  
  2596. Errors
  2597.      rc = 0 if the operation was successful.
  2598.  
  2599.      rc = 10 if the operation failed for any reason, rc2 will contain a
  2600.      string describing the problem.
  2601.  
  2602. Example
  2603.      The following renders the current texture(s) to the HAM render
  2604.      screen in the background.
  2605.  
  2606.           RENDER TOBACK
  2607.  
  2608. Known bugs
  2609.      None.
  2610.  
  2611.      See Render.
  2612.  
  2613. RENDEROPTIONS_GET
  2614. -----------------
  2615.  
  2616. Command
  2617.      RENDEROPTIONS_GET
  2618.  
  2619. Parameters template
  2620.      None.
  2621.  
  2622. Return template
  2623.      WIDTH/N,HEIGHT/N,MODEID/N,TOSCREEN/N,TOFILE/N,FILE
  2624.  
  2625. Description
  2626.      Gets the current render options.
  2627.  
  2628. Parameters
  2629.      None.
  2630.  
  2631. Returns
  2632.     WIDTH/N
  2633.           The width of the render image in pixels.
  2634.  
  2635.     HEIGHT/N
  2636.           The height of the render image in pixels.
  2637.  
  2638.     MODEID/N
  2639.           A standard Amiga mode ID describing the screen mode.
  2640.  
  2641.     TOSCREEN/N
  2642.           Whether the image should be rendered to the screen. 0 for
  2643.           off, 1 for on.
  2644.  
  2645.     TOFILE/N
  2646.           Whether the image should be rendered to a file, given by
  2647.           FILE. 0 for off, 1 for on.
  2648.  
  2649.     FILE
  2650.           The filename of the render file.
  2651.  
  2652. Errors
  2653.      rc = 0 if the operation was successful.
  2654.  
  2655.      rc = 10 if the operation failed for any reason, rc2 will contain a
  2656.      string describing the problem.
  2657.  
  2658. Example
  2659.      The following gets the current render options and returns them in
  2660.      a stem called `renderopts.'
  2661.  
  2662.           RENDEROPTIONS_GET STEM 'renderopts.'
  2663.  
  2664. Known bugs
  2665.      None.
  2666.  
  2667.      See RENDEROPTIONS_SET.
  2668.  
  2669.      See Render options.
  2670.  
  2671. RENDEROPTIONS_SET
  2672. -----------------
  2673.  
  2674. Command
  2675.      RENDEROPTIONS_SET
  2676.  
  2677. Parameters template
  2678.      WIDTH/N,HEIGHT/N,MODEID/N,TOSCREEN/N,TOFILE/N,FILE
  2679.  
  2680. Return template
  2681.      None.
  2682.  
  2683. Description
  2684.      Sets any of the current render options.
  2685.  
  2686. Parameters
  2687.     WIDTH/N
  2688.           The width of the render image in pixels.
  2689.  
  2690.     HEIGHT/N
  2691.           The height of the render image in pixels.
  2692.  
  2693.     MODEID/N
  2694.           A standard Amiga mode ID describing the screen mode.
  2695.  
  2696.     TOSCREEN/N
  2697.           Whether the image should be rendered to the screen. 0 for
  2698.           off, 1 for on.
  2699.  
  2700.     TOFILE/N
  2701.           Whether the image should be rendered to a file, given by
  2702.           FILE. 0 for off, 1 for on.
  2703.  
  2704.     FILE
  2705.           The filename of the render file.
  2706.  
  2707. Returns
  2708.      Nothing.
  2709.  
  2710. Errors
  2711.      rc = 0 if the operation was successful.
  2712.  
  2713.      rc = 10 if the operation failed for any reason, rc2 will contain a
  2714.      string describing the problem.
  2715.  
  2716. Example
  2717.      The following sets the render width to be 320, the height to be
  2718.      256 and the screen mode to be LowRes (mode ID = 0).
  2719.  
  2720.           RENDEROPTIONS_SET WIDTH 320 HEIGHT 256 MODEID 0
  2721.  
  2722.      The following sets the render options so that TextureStudio will
  2723.      render to a file called `Renders/Explosion.JPG' in JPEG format and
  2724.      not to render to the screen, see PREFS_SET.
  2725.  
  2726.           RENDEROPTIONS_SET TOSCREEN 0 TOFILE 1 FILE "Renders/Explosion.JPG"
  2727.           
  2728.           PREFS_SET FILEFORMAT "JPEG"
  2729.  
  2730. Known bugs
  2731.      None.
  2732.  
  2733.      See RENDEROPTIONS_GET.
  2734.  
  2735.      See Render options.
  2736.  
  2737. RENDERPATH_GET
  2738. --------------
  2739.  
  2740. Command
  2741.      RENDERPATH_GET
  2742.  
  2743. Parameters template
  2744.      None.
  2745.  
  2746. Return template
  2747.      PATH
  2748.  
  2749. Description
  2750.      This returns the user's current directory (path) for render files.
  2751.  
  2752.      This command is useful used in conjunction with FILE_JOIN, see
  2753.      FILE_JOIN.
  2754.  
  2755. Parameters
  2756.      None.
  2757.  
  2758. Returns
  2759.     PATH
  2760.           The user's render path.
  2761.  
  2762. Errors
  2763.      rc = 0 if the operation was successful.
  2764.  
  2765.      rc = 10 if the operation failed for any reason, rc2 will contain a
  2766.      string describing the problem.
  2767.  
  2768. Example
  2769.      The following gets the user's render path and returns it in a
  2770.      varaible called `pathpart'
  2771.  
  2772.           RENDERPATH_GET VAR 'pathpart'
  2773.  
  2774. Known bugs
  2775.      None.
  2776.  
  2777. RENDERSCREENPATH_GET
  2778. --------------------
  2779.  
  2780. Command
  2781.      RENDERSCREENPATH_GET
  2782.  
  2783. Parameters template
  2784.      None.
  2785.  
  2786. Return template
  2787.      PATH
  2788.  
  2789. Description
  2790.      This returns the user's current directory (path) for render
  2791.      screens.
  2792.  
  2793. Parameters
  2794.      None.
  2795.  
  2796. Returns
  2797.     PATH
  2798.           The user's render screen path.
  2799.  
  2800.           This command is useful used in conjunction with FILE_JOIN,
  2801.           see FILE_JOIN.
  2802.  
  2803. Errors
  2804.      rc = 0 if the operation was successful.
  2805.  
  2806.      rc = 10 if the operation failed for any reason, rc2 will contain a
  2807.      string describing the problem.
  2808.  
  2809. Example
  2810.      The following gets the user's render screen path and returns it in
  2811.      a varaible called `pathpart'
  2812.  
  2813.           RENDERSCREENPATH_GET VAR 'pathpart'
  2814.  
  2815. Known bugs
  2816.      None.
  2817.  
  2818. RENDERSCREEN_CLOSE
  2819. ------------------
  2820.  
  2821. Command
  2822.      RENDERSCREEN_CLOSE
  2823.  
  2824. Parameters template
  2825.      None.
  2826.  
  2827. Return template
  2828.      None.
  2829.  
  2830. Description
  2831.      Closes the current render screen. Returns an error if there is no
  2832.      render screen currently open.
  2833.  
  2834.      ARexx equivelent to the `Close' gadget in the Infobar window.
  2835.  
  2836. Parameters
  2837.      None.
  2838.  
  2839. Returns
  2840.      Nothing.
  2841.  
  2842. Errors
  2843.      rc = 0 if the operation was successful.
  2844.  
  2845.      rc = 10 if the operation failed for any reason, rc2 will contain a
  2846.      string describing the problem.
  2847.  
  2848. Example
  2849.      The following closes the current render screen.
  2850.  
  2851.           RENDERSCREEN_CLOSE
  2852.  
  2853. Known bugs
  2854.      None.
  2855.  
  2856.      See Infobar window.
  2857.  
  2858. RENDERSCREEN_SAVE
  2859. -----------------
  2860.  
  2861. Command
  2862.      RENDERSCREEN_SAVE
  2863.  
  2864. Parameters template
  2865.      FILE/A,FORCE/S
  2866.  
  2867. Return template
  2868.      None.
  2869.  
  2870. Description
  2871.      Saves the current render screen to the given FILE. Returns an
  2872.      error if there is no render screen currently open.
  2873.  
  2874.      ARexx equivelent to the `Save' gadget in the Infobar window.
  2875.  
  2876. Parameters
  2877.     FILE/A
  2878.           Specifies the filename to save the HAM render screen as.
  2879.  
  2880.     FORCE/S
  2881.           If this is specified, files are automatically overwritten and
  2882.           no warning is given to the user.
  2883.  
  2884. Returns
  2885.      Nothing.
  2886.  
  2887. Errors
  2888.      rc = 0 if the operation was successful.
  2889.  
  2890.      rc = 10 if the operation failed for any reason, rc2 will contain a
  2891.      string describing the problem.
  2892.  
  2893. Example
  2894.      The following example saves the current render screen to a file
  2895.      called `RenderScreens/Water.HAM8'. If the file already exists, it
  2896.      is overwritten.
  2897.  
  2898.           RENDERSCREEN_SAVE "RenderScreens/Water.HAM8" FORCE
  2899.  
  2900. Known bugs
  2901.      None.
  2902.  
  2903.      See Infobar window.
  2904.  
  2905. RENDERSCREEN_VIEW
  2906. -----------------
  2907.  
  2908. Command
  2909.      RENDERSCREEN_VIEW
  2910.  
  2911. Parameters template
  2912.      None.
  2913.  
  2914. Return template
  2915.      None.
  2916.  
  2917. Description
  2918.      Views the current render screen. Returns an error if there is no
  2919.      render screen currently open.
  2920.  
  2921.      ARexx equivelent to the `View' gadget in the Infobar window.
  2922.  
  2923. Parameters
  2924.      None.
  2925.  
  2926. Returns
  2927.      Nothing.
  2928.  
  2929. Errors
  2930.      rc = 0 if the operation was successful.
  2931.  
  2932.      rc = 10 if the operation failed for any reason, rc2 will contain a
  2933.      string describing the problem.
  2934.  
  2935. Example
  2936.      The following closes the current render screen.
  2937.  
  2938.           RENDERSCREEN_CLOSE
  2939.  
  2940. Known bugs
  2941.      None.
  2942.  
  2943.      See Infobar window.
  2944.  
  2945. REQUEST_DIR
  2946. -----------
  2947.  
  2948. Command
  2949.      REQUEST_DIR
  2950.  
  2951. Parameters template
  2952.      PATHPART, TITLE
  2953.  
  2954. Return template
  2955.      PATHPART
  2956.  
  2957. Description
  2958.      Opens a directory requester, allowing the user to choose a
  2959.      directory name.
  2960.  
  2961.      The other TextureStudio windows are automatically blocked when the
  2962.      requester is opened and unblocked when the requester is closed.
  2963.  
  2964.      In common with all TextureStudio requesters, if the user presses
  2965.      `Cancel', an error message is returned. For the script to trap
  2966.      this error, global error checking must be turned off. See Error
  2967.      checking, for more information.
  2968.  
  2969. Parameters
  2970.     PATHPART
  2971.           The default path name to put in the requester.
  2972.  
  2973.     TITLE
  2974.           The text for the title bar of the requester.
  2975.  
  2976. Returns
  2977.     PATHPART
  2978.           The selected path from the requester.
  2979.  
  2980. Errors
  2981.      rc = 0 if the operation was successful.
  2982.  
  2983.      rc = 10 if the operation failed for any reason or the user
  2984.      cancelled requester, rc2 will contain a string describing the
  2985.      problem.
  2986.  
  2987. Example
  2988.      The following puts up a directory requester, with the results
  2989.      being put in the DIRINFO. stem:
  2990.  
  2991.           REQUEST_DIR STEM DIRINFO.
  2992.  
  2993.      The following puts up a directory requester with a default
  2994.      directory of "T:", the result being printed in a message requester:
  2995.  
  2996.           REQUEST_DIR PATHPART "T:" STEM DIRINFO.
  2997.           
  2998.           REQUEST_MESSAGE TEXT '"You chose '||DIRINFO.PATHPART||'"'
  2999.  
  3000. Known bugs
  3001.      None.
  3002.  
  3003. REQUEST_FILE
  3004. ------------
  3005.  
  3006. Command
  3007.      REQUEST_FILE
  3008.  
  3009. Parameters template
  3010.      PATHPART, FILEPART, PATTERN, TITLE
  3011.  
  3012. Return template
  3013.      FILE
  3014.  
  3015. Description
  3016.      Opens a file requester, allowing the user to choose a filename.
  3017.  
  3018.      The other TextureStudio windows are automatically blocked when the
  3019.      requester is opened and unblocked when the requester is closed.
  3020.  
  3021.      In common with all TextureStudio requesters, if the user presses
  3022.      `Cancel', an error message is returned. For the script to trap
  3023.      this error, global error checking must be turned off. See Error
  3024.      checking, for more information.
  3025.  
  3026. Parameters
  3027.     PATHPART
  3028.           The default path name to put in the requester.
  3029.  
  3030.     FILEPART
  3031.           The default filename to put in the requester.
  3032.  
  3033.     PATTERN
  3034.           An AmigaDos pattern matching pattern, will only show files in
  3035.           the requester which match the given pattern. By default, all
  3036.           files are shown.
  3037.  
  3038.     TITLE
  3039.           The text for the title bar of the requester.
  3040.  
  3041. Returns
  3042.     FILE
  3043.           The selected filename from the requester, the filename
  3044.           consists of both the FILEPART and PATHPART parts.
  3045.  
  3046. Errors
  3047.      rc = 0 if the operation was successful.
  3048.  
  3049.      rc = 10 if the operation failed for any reason or the user
  3050.      cancelled requester, rc2 will contain a string describing the
  3051.      problem.
  3052.  
  3053. Example
  3054.      The following puts up a file requester, with the results being put
  3055.      in the FILEINFO. stem:
  3056.  
  3057.           REQUEST_FILE STEM FILEINFO.
  3058.  
  3059.      The following puts up a file requester with the result being
  3060.      printed in a message requester. The default file is
  3061.      "Textures/Radar.itx":
  3062.  
  3063.           REQUEST_FILE PATHPART "Textures" FILEPART "Radar.itx",
  3064.              STEM FILEINFO.
  3065.           
  3066.           REQUEST_MESSAGE TEXT '"You chose '||FILEINFO.FILE||'"'
  3067.  
  3068.      The following will only show files with a ".itx" file extension:
  3069.  
  3070.           REQUEST_FILE PATTERN "#?.itx"
  3071.  
  3072. Known bugs
  3073.      None.
  3074.  
  3075. REQUEST_MESSAGE
  3076. ---------------
  3077.  
  3078. Command
  3079.      REQUEST_MESSAGE
  3080.  
  3081. Parameters template
  3082.      TEXT/A, BUTTONTEXT, AUTOCANCEL/S, TITLE
  3083.  
  3084. Return template
  3085.      NUMBER/N
  3086.  
  3087. Description
  3088.      Opens a general purpose message requester. Simple messages can be
  3089.      presented to the user for them to "OK" them. OK / Cancel
  3090.      requesters can be built with this requester, as well a complex
  3091.      multiple choice requesters.
  3092.  
  3093.      When designing requesters, it is worth remembering the following
  3094.      rules:
  3095.  
  3096.        1. The "Negative" response should be placed on the far
  3097.           right-hand button. For example, the `Cancel' button should be
  3098.           placed here.
  3099.  
  3100.        2. The "Positive" response should be placed on the far left-hand
  3101.           button. For example, the `OK' button should be placed here.
  3102.  
  3103.        3. Try to word your requesters to keep the positive and negative
  3104.           text as "OK" and "Cancel". Using options like "Go to it" and
  3105.           "Stop right here" doesn't make for a very intuitive interface.
  3106.  
  3107.        4. Keep the request text short. The user shouldn't have to read
  3108.           a screen full of text to find out what to do next.
  3109.  
  3110.        5. You should *NEVER* swap the "OK" and "Cancel" buttons around.
  3111.  
  3112.        6. The last point is *VERY* important.
  3113.  
  3114.      The other TextureStudio windows are automatically blocked when the
  3115.      requester is opened and unblocked when the requester is closed.
  3116.  
  3117.      If the AUTOCANCEL option is used and the user presses `Cancel', an
  3118.      error message is returned. For the script to trap this error,
  3119.      global error checking must be turned off. See Error checking, for
  3120.      more information.
  3121.  
  3122. Parameters
  3123.     TEXT/A
  3124.           The text to put into the requester. The text may contain
  3125.           multiple lines by including the `\n' characters in the string
  3126.           (see examples below).
  3127.  
  3128.     BUTTONTEXT
  3129.           The text for the buttons of the requester. The different
  3130.           buttons are seperated with a `|' character (i.e. BUTTONTEXT
  3131.           "OK|Cancel"). By default, only an "OK" button is placed in
  3132.           the requester.
  3133.  
  3134.     AUTOCANCEL/S
  3135.           By default REQUEST_MESSAGE simply returns the number of the
  3136.           button that the user selected. If the requester is of the OK
  3137.           / Cancel variety, specifying the AUTOCANCEL switch allows the
  3138.           requester to stop the script should the user press `Cancel'.
  3139.  
  3140.     TITLE
  3141.           The text for the title bar of the requester.
  3142.  
  3143. Returns
  3144.     NUMBER
  3145.           The number of the selected button. If the requester has one
  3146.           button, NUMBER is set to 0. For more that one button, the
  3147.           right-most button sets NUMBER to 0, with the buttons being
  3148.           numbered from 1 upwards working left to right. For example,
  3149.           with a BUTTONTEXT of "OK|Save first|Cancel", "OK" would
  3150.           return 1, "Save first" would return 2 and "Cancel" would
  3151.           return 0.
  3152.  
  3153. Errors
  3154.      rc = 0 if the operation was successful.
  3155.  
  3156.      rc = 10 if the operation failed for any reason, rc2 will contain a
  3157.      string describing the problem. rc will also be set to 10 if the
  3158.      AUTOCANCEL option is used and the user selects `Cancel'.
  3159.  
  3160. Example
  3161.      The following puts up a message requester:
  3162.  
  3163.           REQUEST_MESSAGE TEXT '"Operation finished"'
  3164.  
  3165.      The following puts up a OK / Cancel requester, stopping the script
  3166.      if the user selects `Cancel':
  3167.  
  3168.           REQUEST_MESSAGE TEXT '"Continue ?"' BUTTONTEXT "OK|Cancel",
  3169.              AUTOCANCEL
  3170.  
  3171.      The following shows a multiple choice requester, followed by a
  3172.      requester showing which option was chosen:
  3173.  
  3174.           REQUEST_MESSAGE TEXT '"Choose an option..."',
  3175.              BUTTONTEXT "First|Second|Third"
  3176.           
  3177.           REQUEST_MESSAGE TEXT '"You chose option '||RESULT||'"'
  3178.  
  3179.      The following shows a message requester with multiple lines of
  3180.      text using the `\n' characters:
  3181.  
  3182.           REQUEST_MESSAGE TEXT '"Top line\nMiddle line\nBottom line"'
  3183.  
  3184. Known bugs
  3185.      None.
  3186.  
  3187. REQUEST_MULTIFILE
  3188. -----------------
  3189.  
  3190. Command
  3191.      REQUEST_MULTIFILE
  3192.  
  3193. Parameters template
  3194.      PATHPART, FILEPART, PATTERN, TITLE
  3195.  
  3196. Return template
  3197.      FILES/M
  3198.  
  3199. Description
  3200.      Opens a file requester, allowing the user to choose multiple
  3201.      filenames.
  3202.  
  3203.      The other TextureStudio windows are automatically blocked when the
  3204.      requester is opened and unblocked when the requester is closed.
  3205.  
  3206.      In common with all TextureStudio requesters, if the user presses
  3207.      `Cancel', an error message is returned. For the script to trap
  3208.      this error, global error checking must be turned off. See Error
  3209.      checking, for more information.
  3210.  
  3211. Parameters
  3212.     PATHPART
  3213.           The default path name to put in the requester.
  3214.  
  3215.     FILEPART
  3216.           The default filename to put in the requester.
  3217.  
  3218.     PATTERN
  3219.           An AmigaDos pattern matching pattern, will only show files in
  3220.           the requester which match the given pattern. By default, all
  3221.           files are shown.
  3222.  
  3223.     TITLE
  3224.           The text for the title bar of the requester.
  3225.  
  3226. Returns
  3227.     FILES/M
  3228.           The selected filenames from the requester, the filenames
  3229.           consists of both the FILEPART and PATHPART parts.
  3230.  
  3231. Errors
  3232.      rc = 0 if the operation was successful.
  3233.  
  3234.      rc = 10 if the operation failed for any reason or the user
  3235.      cancelled requester, rc2 will contain a string describing the
  3236.      problem. rc will also be set to 10 if no files are chosen.
  3237.  
  3238. Example
  3239.      The following puts up a multifile requester, with the results
  3240.      being put in the MULTIFILEINFO. stem:
  3241.  
  3242.           REQUEST_MULTIFILE STEM MULTIFILEINFO.
  3243.  
  3244.      The following puts up a multifile requester, with a default path
  3245.      of "Textures" and loops through all the selected files by putting
  3246.      them in message requesters:
  3247.  
  3248.           REQUEST_MULTIFILE PATHPART "Textures" STEM MULTIFILENFO.
  3249.           
  3250.           do l = 0 to (MULTIFILENFO.FILES.COUNT - 1)
  3251.              REQUEST_MESSAGE TEXT '"'MULTIFILENFO.FILES.l'"',
  3252.                 BUTTONTEXT '"More...|Cancel"' AUTOCANCEL
  3253.              end
  3254.  
  3255. Known bugs
  3256.      If no file is chosen, the command returns a "user cancelled"
  3257.      error. This is normal.
  3258.  
  3259. SCREEN_BACK
  3260. -----------
  3261.  
  3262. Command
  3263.      SCREEN_BACK
  3264.  
  3265. Parameters template
  3266.      None.
  3267.  
  3268. Return template
  3269.      None.
  3270.  
  3271. Description
  3272.      This sends TextureStudio's main screen to the back.
  3273.  
  3274. Parameters
  3275.      None.
  3276.  
  3277. Returns
  3278.      Nothing.
  3279.  
  3280. Errors
  3281.      rc = 0 if the operation was successful.
  3282.  
  3283.      rc = 10 if the operation failed for any reason, rc2 will contain a
  3284.      string describing the problem.
  3285.  
  3286. Example
  3287.      The following sends TextureStudio's screen to the back.
  3288.  
  3289.           SCREEN_BACK
  3290.  
  3291. Known bugs
  3292.      None.
  3293.  
  3294.      See SCREEN_FRONT.
  3295.  
  3296. SCREEN_FRONT
  3297. ------------
  3298.  
  3299. Command
  3300.      SCREEN_FRONT
  3301.  
  3302. Parameters template
  3303.      None.
  3304.  
  3305. Return template
  3306.      None.
  3307.  
  3308. Description
  3309.      This brings TextureStudio's main screen to the front.
  3310.  
  3311. Parameters
  3312.      None.
  3313.  
  3314. Returns
  3315.      Nothing.
  3316.  
  3317. Errors
  3318.      rc = 0 if the operation was successful.
  3319.  
  3320.      rc = 10 if the operation failed for any reason, rc2 will contain a
  3321.      string describing the problem.
  3322.  
  3323. Example
  3324.      The following brings TextureStudio's screen to the front.
  3325.  
  3326.           SCREEN_FRONT
  3327.  
  3328. Known bugs
  3329.      None.
  3330.  
  3331.      See SCREEN_BACK.
  3332.  
  3333. TEXTUREPATH_GET
  3334. ---------------
  3335.  
  3336. Command
  3337.      TEXTUREPATH_GET
  3338.  
  3339. Parameters template
  3340.      None.
  3341.  
  3342. Return template
  3343.      PATH
  3344.  
  3345. Description
  3346.      This returns the user's current directory (path) for textures.
  3347.  
  3348.      This command is useful used in conjunction with FILE_JOIN, see
  3349.      FILE_JOIN.
  3350.  
  3351. Parameters
  3352.      None.
  3353.  
  3354. Returns
  3355.     PATH
  3356.           The user's render path.
  3357.  
  3358. Errors
  3359.      rc = 0 if the operation was successful.
  3360.  
  3361.      rc = 10 if the operation failed for any reason, rc2 will contain a
  3362.      string describing the problem.
  3363.  
  3364. Example
  3365.      The following gets the user's texture path and returns it in a
  3366.      varaible called `pathpart'
  3367.  
  3368.           TEXTUREPATH_GET VAR 'pathpart'
  3369.  
  3370. Known bugs
  3371.      None.
  3372.  
  3373. TEXTURES_GET
  3374. ------------
  3375.  
  3376. Command
  3377.      TEXTURES_GET
  3378.  
  3379. Parameters template
  3380.      None.
  3381.  
  3382. Return template
  3383.      NAME/M
  3384.  
  3385. Description
  3386.      This gets the names of all the currently open textures.
  3387.  
  3388. Parameters
  3389.      None.
  3390.  
  3391. Returns
  3392.     NAME/M
  3393.           The names of all the textures.
  3394.  
  3395. Errors
  3396.      rc = 0 if the operation was successful.
  3397.  
  3398.      rc = 10 if the operation failed for any reason, rc2 will contain a
  3399.      string describing the problem.
  3400.  
  3401. Example
  3402.      The following example gets the names of all the open textures and
  3403.      displays each one in turn with a requester.
  3404.  
  3405.           TEXTURES_GET STEM 'texture.'
  3406.           
  3407.           do l = 0 to (texture.name.count - 1)
  3408.              REQUEST_MESSAGE TEXT '"'texture.name.l'"',
  3409.                 BUTTONTEXT '"More...|Cancel"' AUTOCANCEL
  3410.           end
  3411.  
  3412. Known bugs
  3413.      None.
  3414.  
  3415. TEXTURE_SELECT
  3416. --------------
  3417.  
  3418. Command
  3419.      TEXTURE_SELECT
  3420.  
  3421. Parameters template
  3422.      NAME/A
  3423.  
  3424. Return template
  3425.      None.
  3426.  
  3427. Description
  3428.      Selects a texture to make it the current texture.
  3429.  
  3430. Parameters
  3431.     NAME/A
  3432.           This is the name of texture. You need only supply as many
  3433.           characters in the name to distinguish it from other textures.
  3434.           For example, if you wanted to select the `GasGiant' texture,
  3435.           you need only give a NAME of `GasG'.
  3436.  
  3437.           The name is case insensitive.
  3438.  
  3439. Returns
  3440.      Nothing.
  3441.  
  3442. Errors
  3443.      rc = 0 if the operation was successful.
  3444.  
  3445.      rc = 10 if the operation failed for any reason, rc2 will contain a
  3446.      string describing the problem.
  3447.  
  3448. Example
  3449.      The following example selects the `Radar' texture.
  3450.  
  3451.           TEXTURE_SELECT "Radar"
  3452.  
  3453. Known bugs
  3454.      None.
  3455.  
  3456. VIEW_GET
  3457. --------
  3458.  
  3459. Command
  3460.      VIEW_GET
  3461.  
  3462. Parameters template
  3463.      None.
  3464.  
  3465. Return template
  3466.      VISIBLEWIDTH,XYASPECT
  3467.  
  3468. Description
  3469.      Gets the current view settings.
  3470.  
  3471. Parameters
  3472.      None.
  3473.  
  3474. Returns
  3475.     VISIBLEWIDTH
  3476.           The current visible width as a floating point number.
  3477.  
  3478.     XYASPECT
  3479.           The current X/Y aspect ratio as a floating point number.
  3480.  
  3481. Errors
  3482.      rc = 0 if the operation was successful.
  3483.  
  3484.      rc = 10 if the operation failed for any reason, rc2 will contain a
  3485.      string describing the problem.
  3486.  
  3487. Example
  3488.      The following example gets the current view settings and returns
  3489.      them in a variable called `view.'
  3490.  
  3491.           VIEW_GET STEM 'view.'
  3492.  
  3493. Known bugs
  3494.      None.
  3495.  
  3496.      See VIEW_SET.
  3497.  
  3498.      See View window.
  3499.  
  3500. VIEW_SET
  3501. --------
  3502.  
  3503. Command
  3504.      VIEW_GET
  3505.  
  3506. Parameters template
  3507.      VISIBLEWIDTH,XYASPECT
  3508.  
  3509. Return template
  3510.      None.
  3511.  
  3512. Description
  3513.      Sets the current view settings.
  3514.  
  3515. Parameters
  3516.     VISIBLEWIDTH
  3517.           The current visible width as a floating point number.
  3518.  
  3519.     XYASPECT
  3520.           The current X/Y aspect ratio as a floating point number.
  3521.  
  3522. Returns
  3523.      Nothing.
  3524.  
  3525. Errors
  3526.      rc = 0 if the operation was successful.
  3527.  
  3528.      rc = 10 if the operation failed for any reason, rc2 will contain a
  3529.      string describing the problem.
  3530.  
  3531. Example
  3532.      The following example sets the current visible width to be 50
  3533.      units and the aspect ratio to be 1.
  3534.  
  3535.           VIEW_SET VISIBLEWIDTH 50 XYASPECT 1
  3536.  
  3537. Known bugs
  3538.      None.
  3539.  
  3540.      See VIEW_GET.
  3541.  
  3542.      See View window.
  3543.  
  3544. Tooltypes
  3545. *********
  3546.  
  3547.    The tooltypes for TextureStudio set some important preferences for
  3548. the program such as the name of the public screen and ARexx port.
  3549.  
  3550.    The tootypes apply when starting TextureStudio from the Workbench by
  3551. double clicking on it's icon or when starting it form the shell and
  3552. supplying some arguments, see Starting TextureStudio.
  3553.  
  3554. PUBSCREEN
  3555. =========
  3556.  
  3557. Name
  3558.      PUBSCREEN
  3559.  
  3560. Default
  3561.      TEXTURESTUDIO
  3562.  
  3563. Description
  3564.      This sets the public screen name for the screen that TextureStudio
  3565.      opens. This name must be unique, otherwise the screen will not
  3566.      open.
  3567.  
  3568. PORTNAME
  3569. ========
  3570.  
  3571. Name
  3572.      PORTNAME
  3573.  
  3574. Default
  3575.      TEXTURESTUDIO
  3576.  
  3577. Description
  3578.      The name of the ARexx portname used by the program.
  3579.  
  3580.      If a portname by that name already exists, the name is incremented
  3581.      until a free portname is found. For example, if `TEXTURESTUDIO'
  3582.      was already in use, the following sequence of names would be
  3583.      tried: `TEXTURESTUDIO.1', `TEXTURESTUDIO.2', `TEXTURESTUDIO.3' ...
  3584.  
  3585.      When choosing an ARexx portname, try to keep it fairly short.
  3586.  
  3587. KEYFILE
  3588. =======
  3589.  
  3590. Name
  3591.      KEYFILE
  3592.  
  3593. Default
  3594.      TextureStudio.keyfile
  3595.  
  3596. Description
  3597.      The filename of the keyfile to use to unlock TextureStudio to use
  3598.      all 16 parameters. Keyfiles are obtaining by registering (see How
  3599.      to register).
  3600.  
  3601. PREFSFILE
  3602. =========
  3603.  
  3604. Name
  3605.      PREFSFILE
  3606.  
  3607. Default
  3608.      TextureStudio.prefs
  3609.  
  3610. Description
  3611.      The sets the filename of the preferences file that TextureStudio
  3612.      uses to set up it's defaults on startup.
  3613.  
  3614.      If TextureStudio cannot find the filename given, the settings will
  3615.      be reset to the built in defaults.
  3616.  
  3617. Known bugs
  3618. **********
  3619.  
  3620.    * It seems that some of the textures supplied with Imagine3 that
  3621.      were originally with Imagine2; Bricks and Dots don't work
  3622.      correctly. The bricks texture doesn't affect the object at all and
  3623.      the Dots texture only creates one-quarter of complete circle for
  3624.      each dot.
  3625.  
  3626.      Other textures like Disturbed, Grid, Waves and Wood seem to work
  3627.      fine.
  3628.  
  3629.      Note: TextureStudio will not work with textures taken directly
  3630.      from Imagine2, it only supports Imagine3 textures.
  3631.  
  3632.    * When rendering to a transparent cylinder or sphere, the `other
  3633.      side' of the object cannot be seen through the front surface. This
  3634.      gives the impression of a hemi-sphere and not a complete sphere.
  3635.      This is something that may get fixed in the future, see Future
  3636.      additions.
  3637.  
  3638. Common questions
  3639. ****************
  3640.  
  3641.    If you have any questions about TextureStudio, make sure that they
  3642. haven't already been answered below:
  3643.  
  3644. Common question 1
  3645. =================
  3646.  
  3647.      "Why doesn't TextureStudio support Imagine2 textures?"
  3648.  
  3649.    The Imagine2 texture format differs to the Imagine3 format and the
  3650. details about the Imagine2 format were not released by Impulse.
  3651.  
  3652. Common question 2
  3653. =================
  3654.  
  3655.      "Why isn't there a non-FPU version?"
  3656.  
  3657.    All but the very basic textures supplied with Imagine3 require an
  3658. FPU.
  3659.  
  3660. The authors
  3661. ***********
  3662.  
  3663.    TextureStudio was written by Graham Dean and Andy Dean.
  3664.  
  3665.    Queries and orders (see How to register) should be sent to Graham at:
  3666.  
  3667.      Graham Dean,
  3668.      14 Fielding Avenue,
  3669.      Poynton,
  3670.      Cheshire.
  3671.      SK12 1YX
  3672.      ENGLAND
  3673.  
  3674.    Andy can be reached for queries (no orders) via Internet Email at:
  3675.  
  3676.      adean@eleceng.ucl.ac.uk
  3677.  
  3678.    The rate at which TextureStudio progresses depends on a few things:
  3679.  
  3680.   1. You. If you like and use the program, please register it. If you
  3681.      like the program but think it is missing something that isn't
  3682.      already in our future additions list (see Future additions) *let
  3683.      us know!*.
  3684.  
  3685.   2. Other work. Graham is studying `A' levels and Andy is doing a PhD
  3686.      and this work will take priority (sad, but true).
  3687.  
  3688.    If you find a bug in TextureStudio that is not covered in the `Known
  3689. bugs' list (see Known bugs), inform the authors at the above addresses.
  3690. Be sure to include as much information as possible, the version of
  3691. TextureStudio being used, a description of the Amiga system you are
  3692. running (model, amount of RAM, Workbench version, any expansion cards).
  3693.  
  3694. How to register
  3695. ***************
  3696.  
  3697.    To receive the full version of TextureStudio, send 10 pounds
  3698. sterling (20 US dollars overseas) to:
  3699.  
  3700.      Graham Dean,
  3701.      14 Fielding Avenue,
  3702.      Poynton,
  3703.      Cheshire.
  3704.      SK12 1YX
  3705.      ENGLAND
  3706.  
  3707.    We will accept the following methods of payment:
  3708.    * 10UK pounds cash.
  3709.  
  3710.    * A 10UK pounds cheque, drawn on a UK bank.
  3711.  
  3712.    * A 10UK pounds postal order, purchased in the UK.
  3713.  
  3714.    * 20US dollars cash.
  3715.  
  3716.    * International money order.
  3717.  
  3718.    We *don't* accept any foreign cheques drawn on non-UK banks and we
  3719. *don't* accept any foreign postal orders. We also cannot accept
  3720. Eurocheques for any value (USdollars or UKpounds).
  3721.  
  3722.    Note: Make sure that when sending cash, it is well wrapped in the
  3723. envelope.
  3724.  
  3725.    In return you will receive the latest version of TextureStudio,
  3726. along with a personal keyfile to unlock the package. Each keyfile is
  3727. unique to the registered user, please do not distribute the keyfile to
  3728. others as it can be traced back to you. Allow a resonable time to allow
  3729. cheque clearance, the processing of the order, etc...
  3730.  
  3731.    Upgrades will be offered to registered users free of charge. As we
  3732. are operating a keyfile concept, upgrades can be obtained by getting
  3733. the latest version from the Internet, Aminet, BBS's, PD houses etc...
  3734. If your local provider doesn't have the latest version, pester them
  3735. until they get it!
  3736.  
  3737.    Upgrades will not be given by contacting the authors directly,
  3738. unless there is a very good reason for it (we're sorry, but we don't
  3739. have the resources to deal with lots of registered users all wanting
  3740. upgrades at the same time!).
  3741.  
  3742.    The version number of TextureStudio (see About) is to be interpreted
  3743. as:
  3744.  
  3745.      version.revision.subrevision
  3746.  
  3747.    The `version' shows the main version of the program, `revision' will
  3748. be increased as small additions and improvements are made to the
  3749. program. The `subrevision' value is incremented with bug fixes. All the
  3750. values are simple decimal, not floating point, so version 1.9.0 would
  3751. be followed by version 1.10.0.
  3752.  
  3753.    New versions will be distributed with every change in revision
  3754. number, bug fixes are likely to be distributed as "patches" (more
  3755. details to follow).
  3756.  
  3757. Credits
  3758. *******
  3759.  
  3760.    The authors would like to thank:
  3761.  
  3762.    * Commodore-Amiga.
  3763.  
  3764.    * Our parents for their support (especially our mum for also helping
  3765.      with the posting and packing!!!).
  3766.  
  3767.    * Impulse for Imagine3 and its wonderful textures.
  3768.  
  3769.    * SAS Institute, for the `SAS/C' C compiler.
  3770.  
  3771.    * Ian OConner, for `The Designer' - used to do all the GUI windows
  3772.      design.
  3773.  
  3774.    * Michael Balzer, for `ARexxBox' - used to implement the ARexx port.
  3775.  
  3776.    * Jonathan Forbes, for `LX' - used to decompress the .lha files in
  3777.      the distribution.
  3778.  
  3779.    * All the public domain / freeware / shareware authors, for loads of
  3780.      great software.
  3781.  
  3782.    * The Independant JPEG Group, for their essential JPEG code and
  3783.      information.
  3784.  
  3785.    * All those involved with the excellent TeX and `TeXinfo' packages.
  3786.  
  3787.    TextureStudio has been tested on:
  3788.  
  3789.    - A1200, Workbench 3.0, 2Mbyte CHIP RAM, 4MByte FAST RAM, Power
  3790.      PC1204 expansion card, 68882 FPU, 270Mbyte IDE hard drive.
  3791.  
  3792.    - A1200, Workbench 3.0, 2Mbyte CHIP RAM, 8MByte FAST RAM, Power
  3793.      Viper 030 expansion card with MMU, 68882 FPU, 270Mbyte IDE hard
  3794.      drive.
  3795.  
  3796.    - A4000/EC030, Workbench 3.0, 2Mbyte CHIP RAM, 8MByte FAST RAM,
  3797.      68882 FPU, 130Mbyte + 420Mbyte IDE hard drives.
  3798.  
  3799.    TextureStudio shows no problems with either the `Enforcer' or
  3800. `Mungwall' debugging tools.
  3801.  
  3802. Future additions
  3803. ****************
  3804.  
  3805.    The following features may be added to future versions, they are
  3806. listed roughly in order.
  3807.  
  3808.    * Proper transparent objects, see Known bugs.
  3809.  
  3810.    * Animation control from the GUI.
  3811.  
  3812.    * Better multiple pass render, i.e. blocky redraw.
  3813.  
  3814.    * Printing the texture's name onto the HAM render screen for
  3815.      identification purposes.
  3816.  
  3817.      Any ideas?
  3818.  
  3819. Example textures
  3820. ****************
  3821.  
  3822.    The following are descriptions of the example textures included in
  3823. this package.
  3824.  
  3825.    The textures are freely distributable so feel free to use as you
  3826. wish.
  3827.  
  3828. Blades texture
  3829. ==============
  3830.  
  3831. Type
  3832.      Colour, filter
  3833.  
  3834. Description
  3835.      This texture creates circular blades similar to propeller or fan
  3836.      blades.
  3837.  
  3838. Parameters
  3839.      The parameters can alter the number of blades, the blade radius
  3840.      and amount of space the blades occupy. The blades can be made to
  3841.      fade away with the `fade adjust' parameter.
  3842.  
  3843.      The colour and filter of the blades can be adjusted. For example
  3844.      if you set the object filter to be 255,255,255 and the blade
  3845.      filter to be 0,0,0, the object rendered will be totally
  3846.      transparent except for the blades themselves.
  3847.  
  3848.      This texture can be animated to simulate spinning blades by
  3849.      adjusting the `Sweep angle' parameter.
  3850.  
  3851. Axis
  3852.      The axis position sets the centre of the blades.
  3853.  
  3854.      The axis sizes are ignored.
  3855.  
  3856. Sample object
  3857.      Plane or disk with default settings.
  3858.  
  3859. Radar texture
  3860. =============
  3861.  
  3862. Type
  3863.      Colour
  3864.  
  3865. Description
  3866.      This texture creates are radar screen similar to that on a
  3867.      submarine or airplane.
  3868.  
  3869. Parameters
  3870.      The radar image consists of a grid made of 2 lines, one
  3871.      horizontal, one vertical, concentric circles and the radar sweep
  3872.      itself. The width of the grid lines and concentric circles can be
  3873.      adjusted with the `Grid width' and `Circle width' parameters. The
  3874.      colour of the grid and radar sweep can be adjusted.
  3875.  
  3876.      The radar sweep fades to the object colour so it is possible to
  3877.      overlay the radar texture onto a brush map with Imagine. The `Fade
  3878.      adjust' parameter alters how much the radar sweep fades away.
  3879.  
  3880.      This texture can be animated to simulate a sweeping radar by
  3881.      adjusting the `Sweep angle' parameter.
  3882.  
  3883. Axis
  3884.      The axis position sets the centre of the radar.
  3885.  
  3886.      The axis sizes are ignored.
  3887.  
  3888. Sample object
  3889.      Plane or disk with default settings.
  3890.  
  3891. Target texture
  3892. ==============
  3893.  
  3894. Type
  3895.      Colour
  3896.  
  3897. Description
  3898.      This texture creates overlayed concentric filled circles which can
  3899.      be used to simulate an archer's target or the RAF markings.
  3900.  
  3901. Parameters
  3902.      The fourth circle is layered on top of the third circle which is
  3903.      layered on top of the second circle which is layered on top of the
  3904.      first circle. Therefore the first circle has the lowest priority.
  3905.      Any of the circle's radii may be set to 0 to remove it.
  3906.  
  3907.      The colours of each circle can be adjusted.
  3908.  
  3909.      Note: This texture is clipped by the y axis, this allows multiple
  3910.      copies of the texture to be applied to an object.
  3911.  
  3912. Axis
  3913.      The axis position marks the centre of the target.
  3914.  
  3915.      The y-axis size alters the depth at which the texture affects.
  3916.  
  3917. Sample object
  3918.      Plane or disk with default settings.
  3919.  
  3920. WarningStripes texture
  3921. ======================
  3922.  
  3923. Type
  3924.      Colour
  3925.  
  3926. Description
  3927.      The texture was designed for creating the
  3928.      seen-too-many-times-before warning stripes on spaceships etc. The
  3929.      texture consists of a rectangle with diagonal stripes of
  3930.      alternating colours.
  3931.  
  3932.      The rectangle is set by the bounding box of the axis and so
  3933.      multiple copies of this texture can be applied to one object.
  3934.  
  3935. Parameters
  3936.      The width of the stripes can be adjusted as can the amount of each
  3937.      colour with the `Fraction on' parameter. The slope adj parameter
  3938.      adjusts the slope of the stripes, a setting of -1 gives a 45
  3939.      degree slope to the right, a setting of 1 gives a 45 degree slope
  3940.      to the left and a setting of 0 gives horizontal stripes.
  3941.  
  3942.      The colour of each stripe can be adjusted.
  3943.  
  3944. Axis
  3945.      The axis size and position set the bounding box for the texture.
  3946.  
  3947. Sample object
  3948.      Plane with default settings.
  3949.  
  3950. ImageStudio
  3951. ***********
  3952.  
  3953.    The authors of TextureStudio have also written a shareware image
  3954. processing package called "ImageStudio". ImageStudio is written for the
  3955. casual graphics user who wishes to manipulate images on a modest Amiga
  3956. system.
  3957.  
  3958.    ImageStudio includes the following features:
  3959.  
  3960.    General:
  3961.    * Full 24-bit image buffers, with optimizations for colour-mapped
  3962.      (palette based) images.
  3963.  
  3964.    * Up to 100 levels of undo / redo.
  3965.  
  3966.    * User configurable virtual memory.
  3967.  
  3968.    * Fully font sensitive, style guide complient, user interface.
  3969.  
  3970.    * Fully featured, easy to use, ARexx interface.
  3971.  
  3972.    * Internal / external viewers (external for third party 24-bit
  3973.      graphics cards).
  3974.  
  3975.    * Loading / saving / manipulating of AGA image formats (e.g. 256
  3976.      colours, HAM8) on non-AGA machines.
  3977.  
  3978.    * Max image size of 32000 x 32000 (limited to 250 x 250 in the
  3979.      unregistered version).
  3980.  
  3981.    * Runs on all Workbench 2.04+ Amiga's - utilises AGA chipset if
  3982.      available.
  3983.  
  3984.    * Online AmigaGuide help, as well as ASCII, TeX `.dvi' and
  3985.      PostScript documentation.
  3986.  
  3987.    * Requires no third party libraries or utilities.
  3988.  
  3989.    File formats:
  3990.    * IFF-ILBM formats (Standard palette based, HAM6, HAM8, extra
  3991.      halfbright, ILBM24), BMP, EPS, GIF (conforming to GIF87a), JPEG
  3992.      (conforming to JFIF standard), PCX, Targa, any installed Amiga
  3993.      datatype (with Workbench 2.1+)
  3994.  
  3995.    Operations:
  3996.    * Brightness, Contrast, Gamma, Convolution (includes user
  3997.      definable), Dynamic range expansion, FlipX, FlipY, RollX, RollY,
  3998.      Negative, Greyscale, Highlight, Shadow, Random, Pixelize, Remove
  3999.      isolated pixels, Crop, Scale, Colour reduction (with many
  4000.      dithers), Palette manipulation
  4001.  
  4002.    ImageStudio costs 10UK pounds or 20US dollars and is available by
  4003. writing to the authors at the same address as TextureStudio (see How to
  4004. register). A demo version, limited to loading images of upto 250x250
  4005. pixels, is available from most PD libraries and available by anonymous
  4006. ftp from Aminet (gfx/conv directory).
  4007.  
  4008.    ImageStudio has recently won the Amiga Shopper 1995 reader award for
  4009. `Best PD / Shareware Utiltity'.
  4010.  
  4011.    Other reviews have said:
  4012.  
  4013.      "This program is superb."
  4014.  
  4015.    Amiga Pro, Larry Hickmott, December '94
  4016.  
  4017.      "This is a real prize program. ... Registration is only 10UK
  4018.      pounds, a sound investment if you ask me... 96%"
  4019.  
  4020.    Amiga User International, December '94
  4021.  
  4022.      "Perhaps the most impressive feature is the option to use a hard
  4023.      disk as virtual memory ... a feature that would be welcome in many
  4024.      commercial offerings."
  4025.  
  4026.    Amiga Computing, December '94
  4027.  
  4028.      "It's a promising package... 88%"
  4029.  
  4030.    Amiga Format, November '94
  4031.  
  4032.      "ImageStudio is an impressive program - all the more considering
  4033.      this is the first revision... 90%"
  4034.  
  4035.    Amiga Shopper, December '94
  4036.  
  4037.      "It is impossible to choose between ImageStudio and Blackboard,
  4038.      [Blackboard] has better effects, but [ImageStudio] has better
  4039.      overall handling... 89%"
  4040.  
  4041.    C.U.Amiga, December '94
  4042.  
  4043.      "This is a very stable and useful program with features which are
  4044.      worth a lot more that the asking price. ... I urge you to
  4045.      contribute your shareware fee as soon as possible to get the most
  4046.      from this excellent program."
  4047.  
  4048.    Amiga Pro, Phil South, December '94
  4049.  
  4050.      "Probably the most incredible thing about ImageStudio is that it
  4051.      is as solid as a rock."
  4052.  
  4053.    JAM, December '94
  4054.  
  4055.      "It's been a long time since I've seen a shareware program as good
  4056.      as ImageStudio."
  4057.  
  4058.    EM, December '94
  4059.  
  4060.